A search for "virtual desktop monitors" turned up several discussions. At first glance I didn't see anything about preconfigured layouts, but I didn't look very far.
Here is an idea you could try. It uses:
UltraMon,
"a utility for multi-monitor systems, designed to increase productivity and unlock the full potential of multiple monitors."
It is GUI based, but has a shortcut feature which I think may help do what you want
(I don't use UltraMon, so no guarantees).
A saved shortcut specifies an application's full multi-monitor startup configuration,
and can be invoked from a command line.
I have not researched whether there is any other multi-monitor utility with a similar feature.
VDesk,
a utility for switching to a specified virtual desktop and executing a command there.
For each application:
- Create an UltraMon shortcut which starts the application on the desired monitor with desired window size, position, etc.
- Save the UltraMon shortcut as a Windows shortcut (.lnk file).
- Use VDesk to run the Windows shortcut on the desired virtual desktop.
Collect the VDesk commands into a script, such as:
vdesk on:2 run:"Notepad on monitor 3.lnk"
timeout /t 5
vdesk on:3 run:"Firefox on monitor 1.lnk"
timeout /t 45
...
The timeout commands give each application time to open its window(s) before the next VDesk command switches desktops again. You will have to find the right duration by experiment. For example, my Firefox startup can take some 40 seconds if it decides to auto-update, but usually its windows open sooner and I can tap a key to move on.
I prefer to run my startup script manually, after dealing with the aftermath of any Windows updates during restart. However, you could invoke it from Task Scheduler or your Windows Startup folder if desired.
You can search SuperUser.com for more discussions of VDesk and UltraMon.