Asi dost záleží na tom, jak moc si chcete zaprogramovat a případně vyhrát s Windows API, asynchronními operacemi a tak (overlapped I/O).
Můžete tunelovat určitý port přes SSH (pro SSH bude asi nejjednodušší spustit nějakou instanci SSH klienta, klidně i toho, co je ve Windows 10 nativně) a pak mezi tímto portem a portem sériovým ručně přeposílat data. Bohužel, Windows neumožňují použít volání poll() na cokoliv jiného než sockety (protože sockety v jejich podání nejsou přímo souborová handle). Asynchronní zápis/čtení (overlapped I/O) je pravděpodobně to, co hledáte. Je možné, že API kolem sériového portu bude umožňovat rozumným způsobem zjistit, zda-li v něm jsou nějaká data atd., takhle z hlavy se mi nic nevybavuje.
Trochu nechápu virtualitu toho sériového portu. Chcete jej mít virtuální pouze na testování, nebo i "v produkci"? Jaké zařízení bude zastupovat, resp. co se bude nacházet za ním?