Do you do a search and replace of your DB files to replace your test URL with your live site’s URL??
If that’s the case, it will corrupt serialized data that contains your URL and break all your widgets.
Did you do a search & replace on the database? If so, this is most likely due to the content of the widgets being stored as serialized data. This can happen if you do a normal search & replace on the database (or on the database backup file) to update all instances of your local URL to the the site’s live URL.
To get around this if you are using your hosts file to point to virtual servers in XAMPP/MAP/WAMP, at the start of the project you can call your local version something like yoursiteaddress.loc when the live address would be yoursiteaddress.com – so the number of characters doesn’t change. As its too late in this instance you need to either recreate the widgets or do search & replace on the database using the marvelous search & replace tool from David & the team at interconnect/it:
http://interconnectit.com/124/search-and-replace-for-wordpress-databases/
Oh ok, this is likely the problem. Thanks for the tip.