Try handling the SourceListListChanged event and tell the grid not reset the currentrecord when the datasource is changed from outside the grid to see if this has any effect on this problem.
private void gridGroupingControl1_SourceListListChanged(object sender, TableListChangedEventArgs e)
{
e.ShouldResetCurrentRecord = false;
}