Attempting to change the current item whilst the grid is being sorted will generate this exception.
There is a very easy work around using BeginInvoke on the dispatcher, which allows for the sorting to complete before moving to the first item in the collection.
private void SortCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
DataGridCollectionView view = OrdersGrid.ItemsSource as DataGridCollectionView;
OrdersGrid.Dispatcher.BeginInvoke((Action)delegate()
{
view.MoveCurrentToFirst();
}, DispatcherPriority.Render, null);
}