Glad to see it's resolved. I did a little more digging, apparently many Linksys routers of the same time period as the WRT54GX v1 suffered from lack of support for such a task. I read up on a forum about one WAP54GP doing what was described as something similar to your problem and here is what I read...
The problem is that each AP stores the mac address of the clients associated to it. This means that it builds a table of mac/interface. Each AP has 2 interfaces: wireless and physical.
So, when you connect your laptop to AP1, the AP1 will store your mac related with the wireless interface. Now, while you are connected to AP1, AP2 is also learning and filing in this table. AP2, which is in the same segment, will put your laptop mac address into the table associated with the physical interface. Now, AP2 knows that your laptop is not in its wireless interface, but on the wire. AP2 thinks that you are connected to the wire as it does not know about the existence of AP1.
When you move to AP2, disassociating from AP1 and associating with AP2, AP2 still has the entry in its table thinking that your mac address is in the wire. For this reason, it will not forward the traffic until this entry has aged!
DHCP lease, ARP table, and forwarding issue. Maybe static addresses may have helped? The fix mentioned was ultimately a firmware update, but seems your WRT54GX wasn't a priority for such features even though there were two fw updates released since updates to the WAP54GP fixed the problem. Congrats it's working!