Du schreibst nur in einer Kopie des Records rum, welche danach nicht zurückgespeichert, sondern einfach verworfen wird. An den "eigentlichen" Recordvariablen änderst du also nichts und somit bleibt der alte Wert auch erhalten.
Aber die Felder im Record werden doch gar nicht beschrieben, sondern dienen lediglich als OldPattern bzw. NewPattern für das StringReplace.