In my setup I have the main HD display scaled at 150% and the HD display on the left scaled at 100%.
I have a QQuickWindow placed on the left screen at (-500, 384) with size (500, 100) that eventually must reach the position (500,384) keeping its size.
In the first scenario, I have a timer that increase the x coordinate so that eventually the window is on the primary screen. As you see from the log, when the window crosses the edge its size becomes 333 (500/1.5 devicePixelRatio of the primary screen).
In the second scenario, I make one call to SetWindowPos to set the final position and you can see from the log that this time the width is 500.
I guess the problem lies in the chicken/egg situation that getting the final screen depends on the geometry, but the geometry depends on the screen the window is on.