Today I had to investigate a problem, where the type for a field in a SharePoint list changed from User to Lookup. Using the web interface for SharePoint it is not possible to do this modification.
A user field is internally a lookup field to the UserInformation list in the site collection, this could be proofed in the SchemaXml of the field. That means, this change did not modify or destroy any data. But we still do not know what happened to our list.
We where able to solve the problem by modifying the FieldTypeKind using PowerShell PnP. This member of the Microsoft.SharePoint.Client.Field class stores a value from the enum FieldType.
So, to solve this problem, we just needed 4 lines of code:
In our case, running these commands could solve the problem. But be careful changing the FieldType, because I assume it could destroy the data in this field.