If one way is working and the other doesn't, it should be pretty easy to check them in inspector to see what differs.

How are you adding whatever it is you're adding? Did you double-check their layers and make sure the transform's parent is what it should be? If you set your parent manually after Start(), (such as when using a pool of objects) use NGUITools.MarkParentAsChanged() to notify NGUI that the parent has been changed.