Can the two networks communicate with each other internally? If so, simply send data between each machine. If not, then you will need a central server to relay the chat. This won't be peer-peer though like you asked.
You need to answer my previous question before I can suggest anything else.
NAT sounds like you have two networks with a router in between (so are on seperate networks completely)
If they are hidden behind a router, I'm not sure using RAW packets to the MAC address will work, as you only have the external facing MAC to address. Using NAT is is possible though. You need to look up UPnP; this way you can configure router port forwarding dynamically.
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...