Lots of object creation here...  I don't know exactly what you're trying to do here, but it seems more complicated than it has to be.
I'd explore just storing the start and end dates for the group as dates or timestamps.  Then when comparing them, you can compute the months and years as needed.

Or you could create some other date represnetation like year*100+month.  That would give you an integer representation of the year and month that you could compare directly with <, ==, and >.  Much simpler than objects holding both year and month.