SerializedObject

Getting/Setting Managed References

Getting a managed reference out of a SerializedProperty is very challenging1). It's better to just use C# reflection on the original object and force the asset / object to re-save.

See:

1)
From version 2021.2 on, managedReferenceValue is not Write Only and can be used to easily get the assigned object.
2)
This link has very poor code, but the general approach is correct. It is missing many corner cases, including inheritance and private fields, etc