Can the PropertiesComparer return which property was unequal? It seems it currently fails without that information:
if (result == EqualMethodResult.ComparedNotEqual)
return result;
When a type has multiple properties, this only outputs the name of the type (or whatever ToString() happens to return), e.g.
Assert.That(result[0], Is.EqualTo(testData.ExpectedResult[0]).UsingPropertiesComparer())
Expected: <MyTypeName>
But was: <MyTypeName>