Was it intentional that you have Frame.ParentFont = false in the demo project?
For the frame - no, it wasn't. For the Edit - yes.
When changing the font size of a component from default to custom, ParentFont becomes false.
We say: "Don't inherit the font size, we need a specific size for the current DPI", which in my case is 144.
This should not be related to scaling at all, the LCL should automatically convert such values using designtimeppi.
I can't imagine that the developer would have to manually set the font size for each component with a custom font size.
Also, I have not had any problems before (with ParentFont=false), on Lazarus 2.x.
If you insist on ParentFont=false you are saying: I need this font size and I'll take care of everything.
Even with ParentFont=false everything works as expected if I add a frame using the component palette.
I attached a new demo: the same frame works fine in one case, but not in the other.