After a few hours of frustration, I finally got things working and felt the need to share the knowledge in the hopes of saving someone else from a similar ordeal.
M500 connecting via wi-fi (128-bit WEP) to a D-Link WBR-1310, to which my WinXP box running FireFly is connected via CAT5. The D-Link, though, is just a router/AP, connected via looong CAT5 to a Linksys WRT54G w/ DD-WRT firmware, acting as a wireless bridge to my neighbour's Netgear wireless router and cable broadband (yes, she gave me permission to use her bandwidth Needless to say, many points of failure here.
The D-Link used to be an old Linksys BEFW11S4, and in that configuration everything worked swimmingly. I upgraded to the D-Link and everything worked fine except the M500 could no longer detect the Firefly server.
After many experiments, it turned out using 128-bit WEP [b]SHARED[/b] was the issue. Switching this to [b]OPEN[/b] magically solved all my problems.
Best of luck, folks!