So, after the call to Edit(), the CurrentRowIndex is back to 0?
My guess would be that AutoNavigateToFirstBrokenRow is turned on, the first row has a broken rule, and it's moving to it instead of staying on the current record when Edit() is called. Try setting AutoNavigateToFirstBrokenRow to false and see if that fixes it.