I have proposal for improvement. Let's make two server side dvars for team names and everytime they are set or changed, propagate those names to the corresponding g_teamname_SIDE client-side cvars. Also they should be set only in ready-up time and make CGAC to somehow set those server-side dvars automtically according to match ID. If they will be set to incorrect sides (eg. Team1 is allies, but its name is set to axis), make just simple openscriptmenu command to switch them. Those names could also be in the scoreboard after every round (on the right side) and in spectator they could be positioned for streaming purposes (maybe the scores could be remade to look little bit like CS:GO's ones.
I don't know what status has zPAM now, but I could lend a hand on this. Only thing I'm not sure how to make is CGAC setting team names from match ID automatically, since rcon is required for this.