I have had issues with promoted InfoPath fields having different GUIDs in my development and production environments. This will break rules that use the site column's GUID to get a fields value (lookups to Secondary Datasources). I could copy the Content DB from my production environment to my dev environment and the GUIDs would be in sync but I have found something that is easier.
I use SharePoint Manager 2013 and get the XMLSchema property from the site column (field) from the production site. After launching SharePoint Manager 2013, a free tool, navigate to the site collection, then Forms, then Fields and select the field and then its XMLSchema. The value will look like:
<Field ID="{6a6d9e61-2a1e-4bcb-bbe9-f9ffd4beef85}" Type="Text" Name="_6a6d9e61_2a1e_4bcb_bbe9_f9ffd4beef85" DisplayName="UserNumber" Required="FALSE" SourceID="{bb635ba5-1633-44e6-85a8-ee4b11ee9889}" StaticName="_6a6d9e61_2a1e_4bcb_bbe9_f9ffd4beef85" ReadOnly="FALSE" Group="Microsoft InfoPath" Node="/my:myFields/my:SEIuserNumber" MaxLength="255" Version="3" ColName="nvarchar122" RowOrdinal="0" />
In my dev environment the GUID in the XMLSchema will be different, so I launch SharePoint Manager 2013 from my dev server and navigate to the same field. Then copy and paste, the above value into the XMLSchema. You will need to remove the column from the library where you are using it and re-add it from the updated site column.
You could use C# to do the same thing but SharePoint Manager 2013 is a good tool that has helped me many times...
https://spm.codeplex.com/