The nature of the problem is the same. GroupRowSumManager attaches an event handler to the target grid's AfterContentsGrouped event, and this event is raised for the empty column set while the FillWithData method repopulates the grid.
My first intention was to implement a Detach method in GroupRowSumManager so you could use the same technique as earlier, i.e. detach the grid before the FillWithData call and attach it again after the grid has been populated with new data. But after some thinking, I can suggest a much better way. We can check whether the column set is empty directly in the AfterContentsGrouped event handler and do nothing if it is the case. This will allow you to write your code as you like without adjusting it to the peculiarities of GroupRowSumManager.
Thus, to solve the problem once for all cases, the beginning of the event handler should look like this (add the highlighted row):
Private Sub Grid_AfterContentsGrouped(ByVal sender As Object, ByVal e As System.EventArgs)
If fGrid.Rows.Count = 0 Then Return
If fGrid.Cols.Count = 0 Then Return