Try handling the grid.SelectionChanging event. There you can test whether you are mousing down on a slected range, and if so, do no unselect things.
private void gridControl1_SelectionChanging(object sender, GridSelectionChangingEventArgs e)
{
if(e.Range.IsEmpty && 0 != (Control.MouseButtons & MouseButtons.Left))
{
int row, col;
Point pt = this.gridControl1.PointToClient(Control.MousePosition);
if(this.gridControl1.PointToRowCol(pt, out row, out col))
{
if(this.gridControl1.Selections.Ranges.AnyRangeContains(GridRangeInfo.Cell(row, col)))
{
e.Cancel = true;
}
}
}
}