I guess you want the player to be able to move around, but not do anything else?
SetCommandable(FALSE, oPC) is a good way of stopping the player from doing anything.
For movement in those circumstances, you can use a player tool that targets locations. When the player clicks a location, SetCommandable TRUE, ActionMoveToLocation, SetCommandable FALSE. You could have the tool start automatically, and restart itself on use, so that it appears to the player that they always have a cursor. That way, the player never needs to know they are using a tool, and never has to give up a quickslot.
Not sure why you need Greater Sanctuary - maybe just make all factions friendly? Make the PC immortal? Make it a supernatural effect? Other people know more than I do about that stuff.