In CMS 11, we used a ContentRefernce as a PageHeader property. After upgrading to CMS 12, we found that we could attempt to change the value, but the new value would not be saved.
Changing the GroupName fixes the issue, but of course moves the location of the property
[Display(Name = "Header", GroupName = SystemTabNames.PageHeader, Order = 10)]
[AllowedTypes(typeof(MainHeaderBlock))]
public virtual ContentReference Header { get; set; }