Turning DisplayPort monitor off disables monitor completely
I've run into this issue as well and I've decided to write a little utility to restore the position and sizes of the windows on each of the screens. I unfortunately have an AMD card so the Nvidia solutions don't work for me.
http://www.ninjacrab.com/persistent-windows/
DisplayPort acts as a PNP device, so turning off the monitor disconnects it from the computer as if it was removed and windows are moved out because Windows forgets this device, until it is turned on again and is "discovered".
One solution is to just let the screen go into sleep instead of turning it off. There are ways of programmatically forcing that, for example by using the monoff command in the free Wizmo utility to turn off all monitors.
Another solution for NVIDIA cards is detailed in DisplayPort Blanking / Screen Autodetect Problems by setting the monitor to use EDID information from a file instead of from the monitor, so auto-detect is not required.
This is done in NVIDIA Control Panel -> Workstation -> View system topology -> EDID source (for the monitor) -> Monitor... -> Export EDID.
Repeat this for each monitor. The topology should list the display as either EDID 'forced' or 'file'. See the linked article for more detail.