<RadDockZone> zones = new List<RadDockZone>(RadDockLayout1.RegisteredZones);
foreach (RadDockZone zone in zones)
string currentZoneID = zone.ID;
The RadDock control doesn't have a mechanism for the state of the RadDockZones, so you should create your own mechanism for preserving the state of the dynamically created RadDockZones.
The code below is related to the RadDocks state:
List<DockState> CurrentDockStates = RadDockLayout1.GetRegisteredDocksState();
(DockState state in CurrentDockStates)
string parentZoneID = state.DockZoneID;