Digging up an old post, but I'm experiencing this too now. Using Unity 3.5.2 and NGUI 2.3.1.
My scenario is that I have created 3D data panels that get populated at run time. (See the attached image for the layout, should be fairly self explanatory). I also have a 2D filter panel for choosing which data is shown on the 3D panels. I think I have narrowed it down to only happening when all the filters are turned off, and therefore the Table has no children, but the issue happens so sparsely and otherwise randomly that it is hard to say for sure. It also only ever happens with the first 3D panel you open at any time (i.e close all open panels, open one it will be broken, open another without closing the broken one and the new one will be fine and you won't get another broken one again until all other panels are closed first).
You can't see this in the image I posted, but data items are added to the table by an empty gameObject with a pair of UILabel children.
What you can see in the inspector image is that even though the textures aren't appearing on the panel, they are set in the inspector. If I go onto the inspector and update the sprite (even to the same one it already has) then it comes back on in the game view.
I have tried to suggestions in this thread, none of which worked.
Inspector view:

Working:

Not working: