After being prompted to look into the code by @canto7's comments, and doing a bit more digging, I think I see the problem now. There seems to be some confusion over what entity-level errors means, such as this SO question.
The INDEI implementation that I've used (and a lot of others I suspect) interpret this as "return every validation error for every property". In reality I think entity-level errors means the exact opposite - they are validation errors that have not been recorded against specific properties. For example some complex validation rule that involves multiple properties and/or other classes.
It all comes down to what your requirements are. It may be sufficient to record just the property-specific errors, in which case GetErrors(empty string) should return null. However if you do need to record "entity-level" validation errors then you will need to implement this functionality (most INDEI articles don't), and return these errors from GetErrors(empty string).
Just bear in mind that returning errors in response to this may have undesirable UI effects, as I have found.