Thanks for your suggestion about restarting VMNet. I'll see if I can figure out how to do this on Windows.
Why do I want to use NAT?
A VM running on a Linux host on the LAN is behind a firewall, so it is insulated from attacks from the internet. Bridged networking only adds another IP on the LAN. A Windows laptop is a far less secure enviornment, since it may be connected directly to the internet using a WiFi connection in a hotel or airport. The laptop firewall will hopefully protects it from attacks. Running a VM using NAT means that the VM is not visible to the internet and won't be seen in a port scan. All traffic goes through the laptop's firewall. A VM running on a laptop with bridged networking is directly connected to whatever internet connection the laptop is connected to. As you mention, I can run a firewall on the VM.
Additionally, hotels and airports use MAC address for monitoring WiFi connections and bill for each one. Using NAT means that there is only one external connection; bridged means two.
I'm also happy to hear any ideas, even ones which I might have tried.
The default gateway and DNS is set to the VMNet router address. It looks like DNS resolution is working; when I try to ping google.com, I get a valid IP address.
I did think that the problem might be routers remembering old MAC addresses, since I moved the VM. I power cycled all of the routers, including the gateway. No change.
I haven't tried to turn off the firewall on the laptop. I'll give that a try. (I'm not very familiar with Win7 networking.) I can ssh to other systems on the LAN, so it looks like TCP is getting through laptop firewall and NAT.
Thanks for the pointer to VMNet. I'll check the settings.