Sorry to cause so much trouble but I think I've fixed it, I reset my router to it's default settings then opened the ports and turned off upnp again, then tried two test games with friends where I proxied to one of them and it seems to work now.
In hindsight then I expect it was some error or bug that affected the router which only got removed once i reset it to defaults (I only reset it because a friend wanted me to try putting it in a DMZ to see if that would help, but i couldn't remove it without resetting the router to the default settings).
Once again, sorry to have run you around like this I did not expect this would fix things otherwise I would have tried it before posting. My apologies.