The layer being unnamed simply means that you have a prefab referencing a layer that hasn't been given a name.
NGUITools.AddChild(parent, prefab) will indeed create a new instance for you. If you get an empty object then the "prefab" is either null, or it's not readable with Unity. Try dragging it manually via drag & drop. If you imported a Unity 5 prefab into Unity 4, it will not work for example.