I think that the sizeable windows include borders, which are semi-transparent in Windows 10. You see these borders as gaps.
The next example moves a window to a (0, 0, 500, 700) rectangle, taking into consideration the borders:
[DllImport( "dwmapi" )]
static extern int DwmGetWindowAttribute( IntPtr hwnd, Int32 dwAttribute, ref Rectangle pvAttribute, Int32 cbAttribute );
[DllImport( "user32" )]
static extern bool GetWindowRect( IntPtr hwnd, ref Rectangle lpRect );
[DllImport( "user32" )]
static extern bool PhysicalToLogicalPointForPerMonitorDPI( IntPtr hwnd, ref Point lpRect );
. . .
Rectangle required_rect = new Rectangle( 0, 0, 500, 700 );
Rectangle wrect = new Rectangle( );
Rectangle xrect = new Rectangle( );
GetWindowRect( hwnd, ref wrect );
DwmGetWindowAttribute( hwnd, 9, ref xrect, Marshal.SizeOf( typeof( Rectangle ) ) );
Point wtl = new Point( wrect.Left, wrect.Top );
Point wbr = new Point( wrect.Right, wrect.Bottom );
Point xtl = new Point( xrect.Left, xrect.Top );
Point xbr = new Point( xrect.Right, xrect.Bottom );
PhysicalToLogicalPointForPerMonitorDPI( hwnd, ref xtl );
PhysicalToLogicalPointForPerMonitorDPI( hwnd, ref xbr );
Rectangle adjusted_rect = new Rectangle(
required_rect.X - ( xtl.X - wtl.X ),
required_rect.Y - ( xtl.Y - wtl.Y ),
required_rect.Width + ( xtl.X - wtl.X ) + ( wbr.X - xbr.X ),
required_rect.Height + ( xtl.Y - wtl.Y ) + ( wbr.Y - xbr.Y ) );
MoveWindow( hwnd, adjusted_rect.X, adjusted_rect.Y, adjusted_rect.Width, adjusted_rect.Height, true );
If it works, then use this technique for your other sizeable windows.