In the router you should find something to the effect of Port Redirection, Ports, etc.
So you need to redirect port 3391 to 123.123.123.123 3391 (Not a real IP). Let's say you had port 3392, then redirect port 3392 to 123.123.123.124 3392. Make sure the protocol is TCP, make sure the source is any IP, and the internal IP is the designated IP and the port you chose.
Good luck. By the way the problems you are having with remote desktop, make sure the XP PC is configured to allow remote connections. This can be done by right clicking on My Computer, clicking on the Remote tab, add the appropiate users to the list. This should also automatically configure your Windows Firewall to allow RDP, but won't hurt to check this as well. You can do this by going to Administrative Tools, either in the Start Menu, or go to Control Panel, towards the end of the list there should be the Windows Firewall icon, double click on this and make sure if the firewall is on, that the "Don't Allow Exceptions" box is not checked. Then goto the Exceptions tab has the Remote Desktop Protocol checked, even edit the connection and see the any scope is been chosen for the scope. Then this should be done, now since you have changed the RDP port number by the registry, I am not sure whether or not the Windows Firewall default RDP Entry will relate to that new port or is hard coded to 3389. It might pay to under Exceptions tab in Windows Firewall to add a port of 3391, TCP, and any for the scope. Do this to every PC that needs to have Remote Desktop enabled. Then to test the Windows Firewall from another Internal PC, try and RDP to those PCs. Then try externally.
Let us know how you go.
Kind Regards,
Jim