Several windows or sub windows persist in opening in my primary monitor.
for instance, i run smartsdr on my middle (of 3) monitor. It opens there all the time but when I open profile manager in insists on opening in the primary.
I am sure there is a way to do this but it has me baffled.
You can try holding the shift key and then exiting the window with the X. On some programs, that will put it back to where it was when you closed it. There are also some add on utilities like ShellFolderFix that will put things back were they were when you restarted, or at least an hour before you restarted.
I use Display Fusion to manage multiple monitors. It has a routine that saves your icon positions but you have to reload your profile each time.
I am all ears if someone has found something better.
You did not indicate your operating system so I will assume you are using Windows.
The placement of the programs on the monitors is controlled by the Windows OS. I have a 2 monitor system and I display SSDR on monitor 2. Windows remembers my placement through reboot. SSDR will always open on monitor 2 unless I have moved SSDR display to monitor 1 and then close out SSDR.
With SSDR running on monitor 2 and If I open Profile Manager for the first time since reboot, it will open in my main monitor (1). I can then move the Profile Manager to my 2nd monitor and it will stay there even if I close out the window and then reopen it. However, should I close out SSDR and then reopen it, I will find it has reverted to the SSDR default which is the main monitor. In other words, SSDR does not remember sub-window placement between reboots. The only answer that I can see to your question is to never turn off the computer or never reboot.
A virtual desktop solution http://www.dexpot.de/ may help as well.
In code it's quite easy.....
You could write something in Powershell or VbScript or VB or C# to look for the name of your process (say SmartSDR.EXE) and then move it to which ever screen you wish.
Here is a thread discussing such a method.