I found the solution to this, however it wasn't pretty. I'm not sure if this would necessarily apply to anyone else that has this problem, but here was my situation.
I have been using Outlook on my PC for many years, and I have several email addresses. I started using simple POP connections to my ISP's included email accounts which meant that my calendar, contacts, and email were all being stored locally in a .pst file on my PC. After upgrading to Win10 and Office 2016, I also decided to use my outlook.com email address as the main account which effectively uploaded my local calendar and contacts to outlook.com as well. Something in either the upgrade to 2016 and/or sync of my contacts from the local .pst to outlook.com mucked up their birthdays even though they looked correct when you look at the contact field.
I realized that my local calendar and the Outlook.com online calendar would not show anything in the 'Birthday' calendar. I then added a new contact with a birthday and sure enough, that birthday showed up. I then updated a couple contacts' birthdays, and they too showed up. That led me to updating all of my contacts' birthdays (changing them to the wrong date, saving, and then changing them back).
All of my contacts' birthdays now show correctly in Outlook, on outlook.com, in my iOS contacts and calendar (via outlook.com) on my phone and ipad.
I then proceeded to delete all of the recurring calendar events Outlook creates every time you add a birthday (which it seems you cannot disable) and can now simply display the 'Birthday' calendar instead.
SO - at least for me, this was a Microsoft Outlook issue, not entirely an Apple one. There must have been something odd about how those dates were stored that iOS was translating incorrectly.