Refactoring IEnumerable
I don't know the other conditions but I would do it like this:

public IEnumerable&lt;ValidationResult&gt; Validate(ValidationContext validationContext)
{
    var memberNames = new List&lt;string&gt;();

    bool isValidDateOfBirth = DateOfBirth &gt; DateTime.MinValue &amp;&amp; DateOfBirth &lt; DateTime.MaxValue &amp;&amp; Age.HasValue;
    if (!isValidDateOfBirth)
    {
        memberNames.Add("DateOfBirth");
        yield return new ValidationResult("Invalid date, please enter your date of birth", memberNames);
    }

    bool isValidAge = Age.HasValue &amp;&amp; Age.Value &gt;= 18 &amp;&amp; Age &lt;= 75;
    if (!isValidAge)
    {
        memberNames.Add("DateOfBirth");
        yield return new ValidationResult("Age must be between 18 and 75 years", memberNames);
    }

    bool isValidGender = Gender.HasValue;
    if (!isValidGender)
    {
        memberNames.Add("Gender");
        yield return new ValidationResult("This field is required", memberNames);
    }
}