Without broader exposure to your iptable rules, it is hard to make suggestions. Perhaps use some temporary log statements in your iptables rules to figure out where packets are travsering and/or tcpdump or wireshark to see if packets are leaving or not coming back or whatever.
You could also try:
or (which, according to my notes (cann't recall the reference), is the stricter form of the above):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
where $EXTIP is your external IP address.
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to $EXTIP