we reflected your code and recognized in the method "CancelCellEdit" that you are calling "RaiseCellEditEndedEvent" before changing the values to the old values.
In the attachments you will find a gif which show the problem. It's a simple calculation - cell1 * cell2 - live at cell GridView_OnCellEditEnded.
Changing cell1 - calc happens - switching to cell2 - changing cell2 - calc happens - changing back to cell1 - changing cell1 to something not valid - pressing esc to cancel - cell1 changes back to origin value - NO calc happens.
We tried each event available but we can't find one which gets called to recalculate the values.
installed version: 2019.2.618.45