I am much more tempted to believe that you are experiencing some sort of bug in Microsoft Windows.
If this is the case, it could be very difficult to track down how Windows has wedged itself.
I would try to add a static ARP entry, although that's far from a certain cure.
Code:
ARP -sInetAddr EtherAddr [IfaceAddr] : Adds a static entry to the ARP cache that resolves the IP address InetAddr to the physical address EtherAddr. To add a static ARP cache entry to the table for a specific interface, use the IfaceAddr parameter where IfaceAddr is an IP address assigned to the interface.
You might also try removing all network protocols and drivers and rebooting to auto-rediscover your Ethernet card. That often mysteriously and miraculously clears up hard-to-troubleshoot issues.
Alternatively, Windows really is not the best switch or router. A little LinkSys box might be a much more reliable choice.