I have resolved my issue. Used the ServiceLocator to get the regionFactory. This resolved another issue I had where my custom regions were unloading.

It turns out this was normal behavior of the 3rd Party Docking solution that I am using. My issue was that when I removed all ToolWindows from the docking area (which I had built a custom region for) the Dock Control automatically unloaded the Docking Area control.

As you can see by the code below, when I detect that the Docking Area has unloaded, I check if the Region has also gone, then I recreate the Docking Area and then bind the Custom Region to that Docking Area registering it back into the RegionManager.