I have lived with this for over a year now, I went out to find the solution, and found one that worked for me, and I will post it here so others can find it.
First connect to a WiFi spot, when it is unable to get data, reboot.
Next leave the WiFi area, and when it is unable to get data reboot again.
now when you re-enter the WiFi it should Switch to WiFi with out problem and when you leave it should switch back to 3G with out a problem.
(for those of you that are lazy like me, you can log into your WiFi Router and enable and disable the wireless so you can do this all from your computer with out having to moving around.)
Thanks go to Eagle328 over at the moto forums at https://forums.motorola.com/hives/ec28dd1432/summary for posting the solution originally.