I've finally fixed this although I'm not sure how. In case my experience is of value to other I'll list our configuration and what we changed to get it working. It's important to note that the same project files and database worked fine locally on my development machine.
Windows Server 2008 R2
Website running under a sub domain like http://mysub.mydomain.com
Domain points at external IP and firewall routes external IP to internal IP
Host header in IIS for sub domain and internal IP
What we did to get it working
Changed Host file to "interal IP mydomain.com"
Changed WorkflowBaseURL to http://mysub.mydomain.com
Added a loopback rule in the firewall to allow internal Sitefinity requests to use the public address. Here's more info on this. http://www.firewalls.com/videos/video/sonicwall-loopback-nat-policy.html
Deleted Temp Internet Files and cookies to be thorough
A few IIS restarts in the middle of all that