There was a known issue with PrimaryScreen.WorkingArea a few years ago: [
^] the result of invoking it would be cached, and would not reflect any UI change by the user, like hiding the TaskBar.
The fix was to use: SystemInformation.WorkingArea which is reset on any UI change.
I am not sure if this problem still exists, or if this is relevant to what you are doing, but you might try using SystemInformation.
Almost too obvious to ask checklist: have you hard-coded the Form's Minimum/Maximum Size parameters ? or done anything with 'AutoSize ?