Ja, hatte eh keinen Mittagsschlaf gemacht heute.
Dann bist Du mit Klassen auf jeden Fall besser bedient.
Über Getter und Setter kannst Du dann auf die realen gespeicherten Daten gehen.
Auch kannst Du dort auf Änderungen reagieren und Abonnenten über Änderungen informieren (Stichwort: Databinding oder MVVM).
Sind alle Daten die gesamte Projektlaufzeit im Speicher verfügbar oder brauchst Du so etwas wie einen ORM?
Du musst Dir halt genau überlegen, wie Du arbeiten und was Du erreichen willst. Es gibt da mit Sichheit mehrere mögliche Ansätze.
Wer soll denn eigentlich erfahren, dass etwas geändert wurde (sicher die
GUI-Controls, oder?) und können das auch mehere Konsumenten sein?
Wenn z.B. Formular1 die Darstellung aktualisiert hat und IsChanged zurück setzt, dann kann Formular2 die Änderung nicht mehr erkennen.
Also da muss man wohl genau wissen, was Du im Detail umsetzen willst.
Vielleicht kannst Du Dir ja bei meinem ssFramework oder bei DSharp schon mal Anregungen holen...