Lol strange,
as you can see in my code example i also use a DataGridView. Is yours different than mine?
The problem is that a refresh totally destroys the benefit of the control being databound. This makes all rows reload (and re-trigger all row_databound events in stead of only the one being attached...)
1.) Are you DE-taching the entity the same way as i'm doing it in my example? Because attach also works for me, only detach doesn't seem to work...
2.) Edit: I use a esEntityCollectionView(Of EntityCollection) to re-use the data and apply different views on the EntityCollection. If I detach/attach an Entity, the changes should be reflected by the esEntityCollectionView also right? Because this doesn't happen.. 
A small code snippet, I hope this helps a bit...:
Code:
Public Class FormProduction
Private _AllEpPlans As BLL.EpPlanCollection
Private Sub FormProduction_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Application initialization
Common.LoadEntitySpacesFactory()
'Form initialization
Me._AllEpPlans = New BLL.EpPlanCollection
Me._AllEpPlans.LoadAll()
End Sub
Private Function getBindingSourceFromView(ByVal Filter As String, ByVal OrderBy As String, Optional ByVal HandleChanges As Boolean = False) As BindingSource
Dim v As New EntitySpaces.Core.esEntityCollectionView(Of BLL.EpPlanCollection)(Me._AllEpPlans)
Dim bs As New BindingSource
v.Filter = Filter
v.Sort = OrderBy & " ASC"
bs.DataSource = v
AddHandler bs.ListChanged, AddressOf PlanCollection_Changed
Return bs
End Function
Private Sub PlanCollection_Changed(ByVal sender As Object, ByVal e As EventArgs)
MsgBox("list changed")
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strFilter as string = "EppParent Is Null"
'Load Gantt
Gantt1.Grid.RootNodes_DataSource = getBindingSourceFromView(strFilter, "Description")
Gantt1.Grid.GridStructure.CollapseAll(True)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'Detach Button
Dim p As BLL.EpPlan
For Each p In Me._AllEpPlans
If p.EppAutoKey.Equals(44781) Then
Me._AllEpPlans.DetachEntity(p)
End If
Next
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Attach Button
Dim p As New BLL.EpPlan
p.LoadByPrimaryKey(44781)
Me._AllEpPlans.AttachEntity(p)
End Sub
End Class