Okay so starting here:
Warrior - 43
Mage - 21
Rogue - 10
Shaman - 6
Royalty - 5
Archer - 3
Miner - 3
Merchant - 3
Hunter - 3
Peasant - 2
Noble - 2
I would say if the total number of subtypes could be streamlined a little bit it would probably help. You would have subtypes that mattered because they were likely to have “tribal” powers (rogue is the only current example of this) and subtypes that were specifically weird because you didnt want them to synergize with tribal decks.
Personally I’d pick a few that seemed like they would be different and already have some numbers, then absorb some of the smaller groups into the larger ones.
So something like (this is just an example)
Hunters absorb archers, Nobles absorb royalty and maybe a merchant or two, Shamans maybe get absorbed by mages.
Commoners pick up merchants, peasants, and miners
Maybe some cards get multiple subtypes: Maybe Woodland Assassin is both a Hunter and a Rogue.
Maybe Dragonhelm is both a noble and a warrior.
Either way, I’d also definitely make some warriors fit into other classes just for the sake of them not taking up only 50% of the card pool.
As you develop new cards you want to consider how powerful being a part of a “tribe” is when valuing the card. So maybe when making card that is already powerful in its own right (high elf for example) you give it a unique subtype so that it doesn’t become broken when synergized with other cards.
You could then also introduce similar concepts such as “legendary” cards… that have a special rule like only 1 copy can exist on the battlefield at once.