I think the window pos code is saving "illegal" positions when VPP is shut down while on a second monitor.
Position was being converted to a 16-bit int on reading at startup. Changed to 32-bit int and it's working now.