You can't do anything with DirectX7 interfaces to resolve you issue. It's designed to work like you see. When you move your output window from one device to another DirectDraw start some kind of emulation - it get rendered back-buffer surface back to system memory and later blit's it from system memory to "another" device primary surface. This is described in DX SDK documentation.

Workaround I've used long time ago it to create two identical D3D devices on different monitors and manage output by yourself (limiting blitting to single monotor when window is dragged).