Esiste una interfaccia nel net framework chiamata INotifyPropertyChanged che viene usato nello sviluppo n-tier, cosa che in Italia, purtroppo, non e' di buon uso.
Se lavorassi n-tier, e su HTML.it trovi diversi articoli a riguardo, il tuo problema non si porrebbe minimamente ...
Io farei un semplice delegato comunque a tutti i controlli, dove ogni qual volta il contenuto e' cambiato, beh salvo i dati.
E guarda che te la cavi con 4 righe di codice eh ... fai un for each per i controlli presenti nel container, ad ognuno associ il delegato, e nel delegato scrivi roba del tipo

If (sender .... [proprieta'] <> "valore di base") Then
... salva ->