Are you on the newest version of NGUI?
If not, try enabling depth pass and disabling again immediately after populating the UITexture to force it to update.
Use .mainTexture to put the texture directly in, and have the UITexture on the prefab be entirely empty so there's no material attached already as this tends to make it act a little weirdly, at least on old versions.