Well, I haven't been proven wrong yet, so I'm going to upgrade my comment to an answer.
My interpretation is that the "Years" calculation cares about how many full years have gone by since registration, so you need to actually pass the specified date that you first started. However, the "Months" calculation doesn't care about actual months, but simply 30 days. So when you are in the narrow period of time between 360 days from the start date and your next anniversary, then it will display "1 year, 12 months".
This bug appears to always happen in near proximity to the actual date of 2 years. Thus far it has always been brought up within 3 days of the date, but my expectation is that it will extend to be within 5 days. I have no clue how a leap year will be treated, especially if you registered on the 29th. We'll have to wait until 2012 for that, though, I imagine.
It's confounding, but it's the most plausible explanation I can think of for why this is happening, from a coding standpoint. Months are stupidly inconsistent in their lengths.
Decided to plume through the Stack Overflow users sorted by "oldest". The boundary appears to be based entirely on the day, as the turnover time is at Midnight UTC instead of mattering what the current time is compared to the time of registration. It does appear to be a 5 day span as I predicted, but mysteriously it starts one day later than the current day. For reference, this data was compiled when:
the current time is 2010-09-27 12:41:11Z
User azollman is the end of the 2 year counts and has been a member for
2 years (2008-09-28 23:22:06Z)
The immediately following user, CJCraft.com, marks the start of our buggy displays by being a member for
1 year, 12 months (2008-09-29 00:14:29Z)
On the other end of the scale, our span of 1 year, 12 months ends with user [SuperRoach], who has been a member for
1 year, 12 months (2008-10-03 23:37:42Z)
The immediately following user is Townsfolk, who has been a member for
1 year, 11 months (2008-10-04 00:09:48Z)
If I were to check tomorrow on UTC 2008-09-28, then CJCraft should be saying 2 years while Townsfolk should be saying 1 year, 12 months.