I’ve been pulling my hair out with this on 5.1. Well, that’s not all true. I’m bald. But still.
Here’s one solution that worked for me.
I renamed the property (create a define or something to avoid modifying too much code) and make sure you use a name you will never use. Then compile and open all the instances that used the component. Maybe you can just open the asset itself, but I just wanted to be sure. Change anything in the component and change it back so that you can resave it. I’m thinking it will now remove the old property from being serialized.
Close everything down and rename it back. Rebuild and relaunch.
It now works for me.
I think the temporary name is now serialized which is why you should have used something that you will never used. You can resave just to be sure.
edit: Never mind. It worked for a while and then it reverted to being null at some point.
edit2: Ah, it’s that there seems to be different serialization for debug and release.