1. Different units of the same class are displayed because not every unique unit is obviously better than the stock unit. Sure, the Praetorian beats the Swordsman, but what about Monty's poor excuse for an Axeman?
Maybe we could add it as an option:
x Unique Units Always Better Than Those They Replace
You certainly don't want to consider unique units to be equal to stock units and hide them both, right?
2. The selection behavior is due to the half-finished deployment tab. The code I modified only stores the unit types selected without regard to where they are. I will finish this screen after I complete the core rewrite. This is high priority.
Besides, there's an actual functionality bug (versus a display issue) on that tab: some units simply are not shown!

I know the reason and will fix this very soon.
If you read back in this thread, you will see that the design has two dropdowns for selecting the grouping/sorting. The code can currently group by location, combat type, unit type, level, and promotions. And if you edit the Python, you can change the groupings yourself (very easy, search for "loc" with the quotes.
Code:
grouping1 = self.stats.getGrouping("loc")
grouping2 = self.stats.getGrouping("type")
The other valid values are "combat", "level", and "promo" if you'd like to play around with them. They can appear in any order, but you only get two groupings so far, and I don't know what will happen if you use the same value for each. I doubt there will be very many casualties.