Снизу строки:
<tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="selection.toggle(row)">
</tr>
Удалить:
(click)="selection.toggle(row)" -- remove this
тем самым вы говорите под углом, всякий раз, когда вы нажимаете, выбор строки должен быть изменен.
и
<mat-checkbox (click)="changeSelection(row)" [checked]="selection.isSelected(row)">
</mat-checkbox>
напишите это, чтобы только флажок переключал выделение, вот метод changeSelection,
changeSelection(row){
setTimeout(()=>{
this.selection.toggle(row);
})
}