The issue was that you already had an ORDER BY clause in your recordset SQL statement. The sort behavior was appending to that statement and not removing the sort you had there, so it was always sorting by name first... essentially negating any other sort since names are unique. The solution was to remove the ORDER BY statement from the recordset and add it as the default order by in the sort server behavior.
After making this change the page appears to work... it had nothing to do with data types or date fields.