I haven't done very much networking using C# before but I'll see what I can't get done. This is the perfect project for me outside of Unity 3D that can help me strengthen my skills. If I manage to get any meaningful progress I'll be sure to let the community know.
The issue with traditional Linking that is used for trading is the lack of knowledge of how the hardware sends and receives packets among other things. Going with my approach removes any need to reverse engineer or emulate any system or software. Any benefit gained when trading a Pokemon (such as evolving) could be accommodated for with a simple conditions filter. This also could allow cross platform trading and cross generation trading. We can technically already do this using PkHex, but the process is very tedious.