These are just my suggestions based off other FPS games I played and being a big Wolfenstien ET fan.
Class Limits: Hate to say this class limits are needed. Although it don’t happen all the time but in a 6vs6 game seeing 6 skyhmaeers, 6 rhinos, etc leads to a bad game. To me they did not think this one out. There should be limits like Wolfenstien ET had in place. Also this will improve teamwork since this is supposed to be a teamwork sort of game but there is a lack of it. This leads me to my second suggestion.
Character Limit: The fact you can only take 3 characters with you per match is a horrible idea. You should be able to access all characters you purchased and change to anyone simply by opening a menu and choosing who you want. This along with class restrictions will lead to more balanced gameplay.
Character Classifications: Each character should be classified as either attacker, heavy, support, engineer. Heavy should be characters like Rhino. Each match lets say 6vs6 1-2 engineers, 1-2 medics, 2 attackers, 1 Heavy. At all times there should always be one support and one engineer. This is subject to change based on the objective meaning if there is nothing to fix you will be allowed to switch to an attacker/support.
Character Training: Have training for new players to show them how to play each classification. If you do the support training it will show you the basics of how to play support. It should also teach you the differences between each support class Aura, Sparks, etc.
Also there can be modes lets say team death match where there are no limits to who you can choose.