Are you developing the form in a test library? "SANDBOX"
I am experiencing the same issues. Our live library has 3 workflows that do not exist on the test library. Also I have Ratings turned on for the live library (Which Creates 2 fields). Lastly I have one non infopath (YES/NO) field I added for a special view that does not exist in the Test Library.
I have 2 external data sources pointing back at the live library. 1 retreives the project number field values. (For use when the user needs to take out a new project number) The other looks for a value in a "CheckedOutTo" field. I know these are both pointing at the live library still.
My form works fine in the test library. I even published it to the live library 3 times last week with no problems. Yesterday I tried to publish it and it errored out publishing again. "There has been an error" is the message. I usally need to "Restore a Previous Version" of my template until I get one that publishes and opens. Now, 24 hours later and I finally have my 30 view's re-defined.
Getting your metadata back is easy. Add a simple sharepoint field to the library. I use a Yes / No field. modify a view that displays all your files adding this field. Switch to Datasheet mode. Check this field on the first file. Drag the value all the way down to the last file. All your metadata will re-populate like magic.
NOW, What's causing this? I'm afraid to publish my form anymore.