Well I have the same problem that after a reconnect the IP adress would change and the iptables script would no longer work as it should. I came up with a solution that I did not get to work because of my lack of knowledge regarding shell scripts. But maybe you can get it to work.
The idea is to add a call of your iptables script to /etc/ppp/ip-up. ip-up gets executed every time your box connects or reconnects after being disconnected (to my knowledge anyway). So in theory having your iptables script being executed at the end of ip-up (after flushing the old, invalid rules) should update your rules with the new IP adress.
Maybe I'm mistaken here; if so, pls someone tell me. If this actually works, please tell me so too because then I know that I'm on the right track.
Good luck!