TCP(80,6667,28910,29900,29920) and UDP(4321,27900)\
yet according to GIT, generals uses 8086
according to this random site
http://www.gameranger.com/help/ports/
its 8186.. & 8188...crazy
besides, the long list of ports is the recommended ports for "online" play, you are playing "lan" - virtually of course.
if you ask me, its all a crock of *censored*, i run Zone alarm firewall, when you goto host a game for the first time (if not first time just remove the entry from Zone alarm known program list and rehost), and it will nag about whether to allow it, and will show the port the game is listening on and other information.. from that you can gather precisely what port you need to forward. thats one of the best ways to do it, and should work for any game rather than allowing any old ports ppl rant on about on forums such as this and spraying your packets at the thing and hoping they make it through to the otherside blindly!
in my experience your all wrong, i think i remember my game using 8087 and some high port that matched exactly, probably 27900.
also i noticed that if you arent seeing a load bar for each player, then your missing something from your configuration and your game will not hold, similar to what your having trouble with.
goodluck buddy.. your connections seem bit iffy, 128 up might be too slow. it is possible that all your troubles are because whoever has the 128 up's connection is too hopeless and cant keep up and generals finds this out relatively fast... try with someone with a decent connection.
I am 12mbit/1mbit and my mate is 1.5mbit/256k and it was fine but a little jerky sometimes as the game paused to resynch... if your playing on less, i'd assume that you will have trouble with reconnection errors and such.
enjoyzor
ps. trust me on the zone alarm, its the best way to do it. dont even bother trying to determine what the exact ports are. also dont go forwarding all ports or any ranges too low otherwise you'll run into even stranger trouble.