The links you provided talk about people having an issue when they inherit from a base class that contains properties that are decorated with attributes.

This is clearly not my problem.

My base class only provides a validation method as shown above in the example.

The problem is the Validate method in the base class does not work correctly. The IsValid property of ValidationResult that is returned is always True, even when I purposely violated a rule, as shown again in my example above.

Clearly the issue lies in the base class, and I believe it has to do with the Validation.Validate(Me) line.

As shown in the example above when I validate the object directly I get the correct result, but I try the validation method within the business object it fails.