The only answer i have for you is a bit of a workaround... if it were me, i would simply store the form's size, with a DPI header in order to get the right one...
to get the DPI from the screen in C#:
using (Graphics graphics = Graphics.FromHwnd(IntPtr.Zero))
{
float dpiX = graphics.DpiX;
float dpiY = graphics.DpiY;
}
with this information, you could save in your config file the size of the form based on the DPI... then load the proper size based on the reading of the DPI above. The name of your config value could be something like "Size_At_96_96", and then the value would be the form's size...
Sorry if i don't have any more answers for you, but what i found is that unless you work with WPF, what you are experiencing happens to everybody.