I tried to reproduce this in 2.1.0.9 by just changing out a datatable datasource with a new table with fewer rows and columns, but could not get the exception. Maybe I am not following the steps that you are doing. Can you see the problem in this sample.
GGCresetData_1551.zip
After changing the datasource, you can try setting the CurrentRecord to one in the new table with code like beow to see if that will avoid this problem.
if(this.gridGroupingControl1.Table.FilteredRecords.Count > 0)
this.gridGroupingControl1.Table.CurrentRecord = this.gridGroupingControl1.Table.FilteredRecords[0] as GridRecord;