D11.3 build drama

I have moved a project to D11.3 (New VM with only D11.3 installed)

I open the project, do a full build open the app and all looks fine.
I close the app, modify one unit then hit F9 to rebuild and run it.
I now open a form and get this runtime error

ExceptionMessage=“Error reading cmdtpDate.Align: Property Align does not exist”
ExceptionName=“EReadError”

I then have to do a full build to resolve the error.

Q: Is this a compiler bug or linker bug or a bug of my doing (hope it is the last one but I am stumped)?

The unit compiles ok with the Align property in the DFM everytime and the component unit gets compiled each time so I cannot see what gives rise to the error.

Any advice or comments appreciated
Tony

Delphi 11 has a few properties on various components that have changed. I am not sure if this is your problem… but try opening the form that has the cmdtpDate on it. Then make a small change on the form and save it out again. When you load it initially, it may come up with an error when you first load it… just click ignore.

Once the form has been saved it should work ok again. You may need to do this on other forms as well. The compiler accepts the old format… but it causes a runtime error, when the form is created.

The other two things we need to know are the class of cmdtpDate and if this is VCL or FMX

It is a VCL app and the cmdtpDate is a subclassed datetimepicker. The align property is available in the object inspector when I set it in the form.
I have opened and edited the form back and forth. I use this component everywhere but only set the align property on the one form (if I set it elsewhere the runtime error occurs there as well).
I cannot understand how a full build and and incremental build produces 2 different results.
A test app with the component appears to compile fine every time. (I would have reported it to Embarcadero as a warning to others)
I guess I just workaround it and move on but was hoping to understand better as this runtime error is a slient assassin - undetectable until a user opens the form.

UPDATE A few more hours and I can report this was my doing.
I was compiling an outdated patched unit which must conflict with the component source thus confusing the compiler.
Not sure how the full rebuilld masked this (just luck maybe)
Regards
Tony