The fact that axis can take flag back leads to situations where it does more harm then good. I bet this does not need more explaining.
1. solution: Maybe script to make Allies capture permanent after holding flag for certain amount of time (30sec, 60sec). After that axis can not "accidentally" take it back. If something like that is possible.
2. solution: Add objective for allies, for example blow this thing to make flag capture permanent. But this requires changing the map i guess.