Я понял это, я неправильно понял, что INotidyDataErrorInfo.GetErrors (свойство строки) должно возвращать, когда предоставляется нулевое или пустое свойство, я думал, что оно должно возвращать все ошибки свойств, но не должно возвращать ошибки верхнего уровня классанарастающее событие ErrorsChanged с предоставленным свойством и нулевым аргументом, поэтому оно показывало повторяющиеся сообщения, одно для свойства, одно для уровня класса, и в моем случае они были одинаковыми.