Same problem here and it
is a DST/TimeZone issue. When your contry as a DST, you are very prone to create and edits contacts in either TimeZone through the year. Then, when you look back at your contacts, half of them have their birthday set on the wrong timezone.
You can reproduce this problem by just shifting your phone timezone to some
earlier timezone, and then look at the birthday of your contact. Makes mine all shifted by one day.
Birthday should
not be affected by timezone, a birthday is linked to a date label, not to a 24hour period. A birth date should be displayed as entered and as displayed on ID documents, and not appears different given the timezone we are in. If my birthday is January 1st, it remains January 1st wherever I am.
Timezone should not be used when a contact is stored or when the date is displayed. When will apple fix this problem? it renders the whole point of using birthday reminder useless.... and much worse, it syncs backs errors to my original calendar! Now i have to manually check every single one of 500 contacts. Thats a bug!