Are you going through a router or anything of that sort, I am guessing you are. I had an issue somewhat like this and I had to play with the router. Try putting the Linux box in the dmz zone for a short period.(Yes I know this is dangerous, and yes I know this is primarily for WAN to LAN, but on my router anyways it fixed this issue). Set it in the DMZ zone to see if this resolves the issue. If not then more than likely a software configuration issue. In the router you can also set up a direct route between the two computers if the DMZ zone works.
Q2. Don't know, will have to look into this.
Q3. Ummmmmmmmmmmmmm, question is why is it dynamic. If it is under a LAN then it should be static. If you are trying to use it remotely, then you won't have any luck. What you need to do is get some program like http://www.dyndns.org/services/dyndns/clients.html to give you a static hostname.