Hi Steven;
I have this feature working in my framework. You can see it in action in the latest (beta) example OrderEntry application which can be downloaded from here: https://sourceforge.net/projects/stdfndclass/files/Applications/PowerBuilder/OrderEntry/Beta/PB2017R3
The OE App can easily save & restore 4-8 dockable windows (tested - but, probably more). The framework creates the following registry entries (which is customizable) ...
You can see the implementation code in the "wn_controller_master" object class's "oe_postopen" and "CloseQuery" events. The reason why the Dockable State is captured in the CloseQuery, is that this is the safe place to capture the open sheets. The framework has a "Sheet Manager" that closes all the open sheets (in reverse open order) before the Frame closes to make sure the App "shutdown" is smooth & orderly.
When you run the OE app, just select the "Dockable" check box in the "login" dialogue to enter Dockable mode. Otherwise, it will run as a plain MDI frame based App. I still have some code "tweeks" to do but for the most part, its working well (for me).
Here is an example start-up of the OE app that restores 5 dockable sheets ....
HTH
Regards ... Chris