Here's the process:
-I'm instantiating a child to add to an invisible widget acting as a container for the child objects I instantiate using NGUITools.AddChild(..);
-Child object :depth 3
--Container1 :depth 3
---Slider A : depth 3
---- Slider A background : depth 3
---- Slider A foreground : depth 4
---- Slider A Label : depth 3
---Slider B: depth 3
---- Slider B background : depth 3
---- Slider B foreground : depth 4
---- Slider B Label1 : depth 3
---- Slider B Label2 : depth 3
---Slider C : depth 3
---- Slider C background : depth 3
---- Slider C foreground : depth 4
---- Slider C Labe1l : depth 3
---- Slider C Label2 : depth 3
-- Container2 : depth 3
--- Label1 : depth 3
--- Label2 : depth 3
-- Sprite : depth 3
So the child object has 2 containers, 1 for sliders, 1 for some labels, and a separate Sprite.
Everything is depth 3, since they don't overlap each other, except the UISlider foreground sprites because they sit ontop the slider's background sprites are depth 4.
When I open the DrawCalls from the UIPanel, everything is being rendered almost separately, one at a time or sometimes 2 at once.. doesn't make sense to me seeing as they ALL share the same atlas, and all the Labels share the same material.