I'm wondering no one mentioned INotifyPropertyChanged Interface (
http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.95).aspx[
^]
normally the prefered way for me to create an observable object. For your case I can imagine to have a central handler for all PropertyChanged events from your object updating your "boolean Array" of "dirty/changed" states. Or just react to changes imediately.
And if you want your object visualized you can use twoway bindings (e.g. WPF) out of the box.
Edit: I fully agree with SA and others about 90 members is no excuse for not using properties (even private ones). If your object exposes 90 public variables - something with your design is maybe wrong. consider grouping related data to new (container-)classes or break your "big" class into smaller ones. And: make using properties a habit you never question - I think this is common sense in the whole .NET community. The benefits by far outweight the typing work (but there are snippets, code Generators, tt,....).
greetings
Johannes