It's easier than that. Instead of inheriting, just have a class that you use to activate your panels. Instead of using NGUITools.SetActive, use YourCustomManager.Show(yourNewWindow). This will automatically play the animation in reverse on any window that was shown currently, and play the animation forward on the new window you specified.
That's what I did for Windward.
Since this class stores a stack of windows, adding something like YourCustomManager.GoBack() is trivial.