Bugs against Android OS seem to point to it being a problem specific to the Android platform. Finger pointing at Linux or the hardware in these threads but no solid solutions.
https://code.google.com/p/android/issues/detail?id=12649
https://code.google.com/p/android/issues/detail?id=74990

Some people claim success with this: https://play.google.com/store/apps/details?id=com.heleron.wifiroamingfix

Odd that Android and Linux didn't fully implement the 802.11 based roaming standards. (802.11r being one of them). Back at my old house in 2003, had roaming going between two Airport Expresses situated at each major area similar to your setup Dan. Though back then, both Airport Expresses simply handled WiFi, and no NAT or routing at all.