penso che senza viewestate al massimo puo funzionare Eval("expr") e non Bind.
questo significa che in qualche modo il salvataggio lo devi fare con un pulsante collegato ad una funzione che fa il lavoro manualmente (niente bind).

A questo punto per semplificare le cose poiche come dici le righe sono "soltanto" sei invece che cercare di beccare la riga su cui i dati sono stati modificati io salverei l'intera lista e metterei un unico pulsante salva fuori dal repeater piu esterno.