The T-Mobile signal in our house used to be very weak; one could use a cellphone on one side of the house (if you didn't move) but not the other. We switched to Motorola phones the same time they put up a new tower, and for months observed much the same as you, except that we never went to "roaming." We submitted reports to T-Mobile, and somewhere along the way they fixed it. I can tell which tower I'm connected to, but we no longer get bounced back & forth when active.
It's best to do this about every month. On Verizon, dial *228 then send, select option 2 to update software. On Sprint, they supposedly update you automatically but you may have to dial *2 and ask for an OTA update, which will usually be answered by a WTF, but they will figure it out and update your phone. On T-Mobile, I'm not sure but it looks like they automatically update your phone at times.
What this does is to load the latest image of all the network cell towers and coverage so your phone will not be confused by newly built towers and think it's roaming.