جناب مهندس راد. من کد کلاس رو اینطوری تغییر دادم
         Protected Overrides Function EvaluateIsValid() As Boolean
            Dim checkEmptyResult As Boolean = False
            Dim checkFormat As Boolean = False
            Dim checkInRange As Boolean = False
            Dim ControlValue As String = Me.ControlValue
            checkEmptyResult = Me.CheckEmpty(ControlValue)
            If (Me.ValidateEmptyText) Then
                If (checkEmptyResult) Then Return False
            End If
            If (checkEmptyResult = False) Then
                If SmallDate Then
                    If ControlValue.Length <> 6 Then Return False
                    ControlValue = "13" & ControlValue.Substring(0, 2) & "/" & ControlValue.Substring(2, 2) & "/" & ControlValue.Substring(4, 2)
                End If
                checkFormat = Me.CheckFormat(ControlValue)
                If (checkFormat = False) Then Return False
            End If
            If (checkEmptyResult = False) Then
                checkInRange = Me.CheckInRange(ControlValue)
                If (checkInRange = False) Then Return False
            End If
            Return True
        End Function
و
    Page.ClientScript.RegisterExpandoAttribute(Me.Clie  ntID, "smalldate", Me.fSmallDate.ToString())
سپس در فایل اسکریپت این تغییرات رو اعمال کردم
function smallDate() {
    return gs.smalldate;
}
و
function validatePersianDate(val) {
    gs = val;
    var resultCheckEmpty = false;
    var resultFormat = false;
    var resultInRange = false;
    var value = ValidatorGetValue(val.controltovalidate);
    resultCheckEmpty = checkEmpty(value);
    if (validateEmptyText() == "True") {
        if (resultCheckEmpty == true)
            return false;
    }
    if (resultCheckEmpty == false) {
        if (smallDate() == "True") {
            if (value.length != 6) { alert(value.length); return false; }
            value = "13" + value.substr(0, 2) + "/" + value.substr(2, 2) + "/" + value.substr(4, 2);
            }
        resultFormat = checkFormat(value);
        if (resultFormat == false)
            return false;
    }
    if (resultCheckEmpty == false) {
        resultInRange = checkInRange(value);
        if (resultInRange == false)
            return false;
    }
    return true;
}
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <cc1:PersianDateValidator ID="PersianDateValidator1" runat="server" 
            FirstWhat="FirstYear" ControlToValidate="TextBox1" Text="*" 
            ValidateEmptyText="True" SmallDate="True" ErrorMessage="*" 
            EnableClientScript="False" ></cc1:PersianDateValidator>
        <asp:Button ID="Button1" runat="server" Text="Button" />
الان کنترل همیشه درست کار نمی کنه. یه راه حلی چیزی ؟!