There are various ways to handle it. I use Dual in the script for the month field to be used in the filter to show formatted as month but date type internally e.g. Dual(Date(Monthfield,'MMM'),floor(Monthend(MonthField)))
Once the type is set as date it can be sorted as asc/desc the way desired.