This is an old question, but if anyone arrives here with the same issue, I suggest trying the solution posted here:
I'm running Windows 8.1 with two 2560x1440 displays on DisplayPort. When waking from sleep, all my windows had been pushed to one display, and some of them resized. This fixes the issue for me; now all my window positions and sizes are preserved. Here is the relevant link content:
I have found a work-around. Using Sysinternals ProcessMonitor I found
that Windows was accessing the following Registry path;
My system had three entries;
Under each is a tree called "00" two of the keys are PrimSurfSize.cx
Under "00" was another branch also called "00" two of the keys are;
The first two of the configs (ie DELF00... & QHD3...) the above keys
were 1440x900, so they were not involved.
The third (SIMULATED...) were set to 1024x768.
I changed these to 1600x900 and the problem was solved.
Further I changed resolution (via control panel) to 1920x1080, the
moving/resize issue returned, but the lower right corner was set to
1600x900, ie the SIMULATED... settings.
So for some reason one of the configs does not get set correctly.
I don't know why there are three configs, I have only ever used one