Fine.
There had to be something else changing data, as a replace (the way you did it without REST/FOR/WHILE scope) only replaces one records field value.
Now that you're through with this bug, you should really learn how to bind controls and do with much less code.
You can do a simple data bound form just using the recordsource/rowsource and controlsource of controls and no code at all. For navigating records you use a grid, the only other thing needed is a refreh of the form, which could be done in afterrowcolchange event of the grid. Other things are optional, but good ui, eg an add/revert and savwe button. They all just need single code lines.
Doing replace was the way to work in legacy foxpro, it seems. Scatter a record to variables, let the user edit them in @GET and than gather. This is dead for at least 20 years. As you already are in Winform, move forward and slim down your codebase to maintain. Then such bugs are also a thing of the past.
Bye, Olaf.