Yea, the team balance works fine. Set the auto-balancing option in your gametype editor.
The game is working as intended, just because it doesn't work the way YOU want it to work does not mean that it's "broken".
That said, I'm currently working with someone on a server application (for Custom Edition) that adds team balancing. It seems to work fairly well at this point but we're still working out some bugs. Right now it checks the teams every 30 seconds, if an imbalance is detected a **SERVER** message is displayed letting players know that teams will be auto balanced in 30 seconds. At 15 seconds the server performs another check, if the teams are still uneven it displays another **SERVER** message, if they're now even it goes back to checking every 30 seconds. At 0 seconds random players from the team with more players are switched to the team with less players and a **SERVER** message displays how many players were switched.
This functionality most likely will not become available on the normal PC version. Custom Edition has more stable leading than PC servers, and custom maps are awesome.