Can't clear GoView.Selection.Primary

My application uses GoObjects derived from the CollapsingRecordNode classes in Demo1 to contain business objects. I’m run into a peculiar bug and I can’t figure it out.
I edit my business objects by putting them into a PropertyGrid control on a non-modal form. After a business object is edited, the CollapsingRecordNodeItem sub-class that contains it remains the Selection.Pimary object no matter what I do. Selection.Clear() doesn’t clear it out. Selection.Remove(Selection.Primary) doesn’t remove it from the selection.

And if I click the same CollapsingRecordNodeItem sub-class with Shift or Ctrl, I have two objects in the Selection.
I should mention that the Text property of the CollapsingRecordNodeItem sub-class is updated through Changed event. I'm also handling other GoView Document changed events elsewhere. And this doesn't happen if the business object is not edited.
Do you have any ideas what might be causing this wierd behavior? Thanks.

After hitting lots of dead-ends debugging and trying to figure this out for two days, I finally asked for help from my son at the International House of Prayer in Kansas City (ihop.org). I don’t even know if he prayed yet or not, but I got the answer.

In my debugging, I noticed I'd step through my business object's override of int GetHashCode(), which just returned ToString().GetHashCode(). I noticed that the bug only occurred when I changed a property that affected the result of ToString(), which was another override.
I changed my business object's GetHashCode() to return the ID of the business object and the bug was gone!

Can you get pancakes with your prayers? Glad you found the problem…