As I mentioned, Unity keeps references to scripts internally, and if the references get lost, it can always be traced back to moving something from A to B either outside of Unity, or in some other fashion where Unity was not able to update them. This is just how Unity works, and is one of those things that every single user has run into at some point or another in their dev lives, myself included
You can try it in a new project -- import NGUI, then follow the steps in the FAQ post I linked. Everything will work, and all references will be kept.
Also note that you need to start a clean scene before doing any of this. If you have any scene open that's using NGUI, things may not work properly. This is why the upgrade process explained in the readme file is a 3 step process:
1. New scene
2. Delete NGUI
3. Import NGUI