FlyGrid.SelectionChanged/SelectionChanging events fired when MultiSelect is enabled, when FlyGrid.Options.MultiSelect disabled use FlyGrid.NodeSelectedChange/NodeSelectedChanging events.
And do not forget that NodeSelectedChanging event fires when node is becoming/ to selected and becoming to unselected, and NodeSelectedChanged fires when node is selected and unselected.
In this case you should analyze state of the node:
node.Selected == false in NodeSelectedChanging means that node is becoming to be selected, otherwise - unselected.