Без дополнительных подробностей я могу только предположить, что артефакты, которые вы испытываете, являются результатом повторного использования виртуализированных ячеек. Вы можете проверить это, отключив виртуализацию столбцов и строк:
<DataGrid EnableRowVirtualization="False" EnableColumnVirtualization="False" ...
Кроме того, если это не помогло, случайно ли вы переопределили метод Equals
элементов данных? ItemsControls иногда дают сбой, когда отображают несколько одинаковых предметов.