I should have read your post properly before wasting time on trying widgets.

Anyway, I've taken a look at UIDrawCall script and noticed you were using HideFlags.DontSave.
There were 4 in UIDrawCall and 1 in UIPanel.
I've commented out those, it looks like the ones in UIDrawCall had no problem but the one in UIPanel line 509 fixed the issue! go.hideFlags = HideFlags.DontSave;
After searching the project for DestroyImmediate calls, I couldn't find a call for object "go" while other 4 had destroy calls set. I guess that was the culprit...
Since I commented out that line blindly, I'm afraid it might have some side effects since you've used it... If that's the case, where should I place the destroy call?
Best,
Erdener