In this case I think you are not choosing the right design option for the task at hand.
If you want a Form to never be moved, then why allow it to be moved: why not get rid of the TitleBar through using various Form properties like FormBorderStyle, setting 'Text of the Form to an empty string, set the MinimizeBox, MaximizeBox, ControlBox, etc., to the appropriate values.
If the Form has a TitleBar, and you leave the ControlBox, MinimizeBox, and MinimizeBox, decorations in place, there is no way you are going to be able to cancel the user's ability to move the Form around: yes, you can "snap it" back in place by over-riding the Move, or LocationChanged EventHandlers, but the user is still going to be able to drag-around an empty Rectangle. This is not a good thing.
fyi: when a Form is moved, the 'Move Event is raised before the LocationChanged Event.
You could use the Windows API/pInvoke to prevent Form movement: less than 5 seconds using Google turned up this: "Creating a immovable windows’ form in c#" [
^]. Note: I haven't tried this code.
Other issues you raise can be addressed by simply setting the Form's MinimumSize and MaximumSize Properties to be identical to the desired Size parameters of the Form.
But, as (I think) my esteemed mentor, and colleague, OriginalGriff, says, you are really going against the grain of Windows UI conventions here.