Here is an excerpt from our Skin.dll that we use for JewelBeetle.
The important method for us is the OnBeginLoadAtStartPlugIns() in here we load your main rhino plugin which starts up our application.
Because we name output of the skin project: JewelBeetle.Skin.dll

We then only need to have a saved Window Layout file names JewelBeetle.Skin.rhw in the same directory that the skin.dll is, and Rhino will automatically load it on startup and apply the window layout.
We do this instead of messing with loading Toolbars and Hiding UI Panels, etc. Instead we just setup everything the way we want it to be and the export the *.rhw file:
So in our case we name our layout JewelBeetle.Skin.rhw and include it in the folder we ship our software in, along side the plugin, and the JewelBeetle.Skin.dll file.
Once you’ve ran Rhino one time with the /scheme=YourPluginScheme name, it will create a registry entry here (or in Rhino 7 if that is your case):
Then you just need to add the SkinDLLPath key pointing to where your skin.dll file is.
From that point on, anytime you launch Rhino with your scheme name, it will load your skin.dll, which will load your plugin, and it will then load/apply your window layout.
Hope this helps, it took me a while to figure it out, but I think it is the best way to do this…
Once you get it all working well, you can create a very custom looking application making use of Rhino at it’s core: