Honestly, it is amazing that the results are mostly correct at all…
The entries were saved as the family entry type, the date field that is actually used for the sorting is not saved for the entry when it is a family or org type. So, the field that is being sorted is completely empty so what you are really seeing is unordered results that probably are just outputting in the order they were entered.
The fix would to be to go back and change them to the Individual entry type so the anniversary date is saved to that sort field. But that still would not get the results you want. What you would end up is is results starting from January going to December regardless of year/age.
Why? Well, way back when, Connections only had a birthday and anniversary date field and the input for those fields only required the day and month, no year. Why was that, well, Connections was born out of the need of my church to have an online directory, we didn’t need or want a year. To account for that, all dates were normalized to the year 1970 when saved to the db.
Fast forward… Connections now support years and multiple date types and does some rather gymnastic backward compatibility coding to support the and old. One area that has not received any love is the ordering by birthday/anniversary code. What should be done is that bit of code should be updated to use the new fields which saves the full date regardless of entry type.
It “should not” be too difficult to get this fixed in the upcoming 8.2.5 bugfix release. I would sure appreciate you help though. If I could get temp FTP access I’ll upload the fix after I complete it to make sure it functions as expected.