I'm also having this problem at the moment.
The data is being filled via MySQL and FillWithData(), and the SQL command we're using returns the Date directly in .NET "short" datetime format (for example, 30/06/2011). However, I just can't sort correctly on this column - it will return them in "groups", for example one batch of 2010 dates, then some 2007, then some 2009.
Could it possibly be that it needs to be in US format to work correctly? (ie, 2011-06-29) Mathematically this makes sense as sorting using the default ByValue type would return the right results, but it would never work in non-US formats if that were the case.
I'm confused 🙂