You need to add an adapter for your custom attribute StringLengthWithCustomErrorMessageAttribute
protected void Application_Start() {
DataAnnotationsModelValidatorProvider
.RegisterAdapter(typeof(StringLengthWithCustomErrorMessageAttribute),
typeof(StringLengthAttributeAdapter));
}