MoveWindow(proc.Handle, ...);
proc.Handle is not what you think it is. It is the process handle, not the Process.MainWindowHandle that you are interested in.
You are asking this question because you don't check for errors. So you don't know why it doesn't work. These functions return bool, false means that you got it wrong. Throw a Win32Exception so this isn't completely undiagnosable:
if (!MoveWindow(proc.MainWindowHandle, ...)) {
throw new Win32Exception();
}