The date of Christmas isn't off. It's celebrated on the date it is supposed to be celebrated.
In the 3rd century some Christian thinkers talked about when Jesus was born, it was a topic of curiosity. At the time there was no explicit feast day that celebrated His birth, instead the Feast of the Epiphany (also called the Theophany) was a more all-purpose feast where Christians focused on the Incarnation. The central focus of the Epiphany was Jesus' baptism, but it came to include more aspects of His earthly life (whereas the Paschal Season was focused on His passion, death, and resurrection).
When Jesus was crucified wasn't debated, because the when was pretty clear: it was on Passover. Of course the Jewish calendar and the Roman calendar are different calendars, so the Jewish calendar which was lunar, and the Roman calendar which was solar, meant Nisan 14th changed year to year in relation to the Roman calendar. At some point Christians came to regard that, in the particular year Jesus was crucified, Passover coincided with with the Vernal Equinox, or March 25th.
So when Christians were trying to figure out certain questions, like when Jesus was born, they assumed He had been crucified on March 25th, which was also Nisan 14th on the Jewish calendar that year.
There was, at the same time, a sense that since Jesus was perfect, His mortal life-span was also perfect. Meaning that He died on the same day He was born. This led some to believe that Jesus was born on a March 25th. Some others, however, argued that Jesus was conceived on March 25th, and thus would have been born 9 months later, well add 9 months to March 25th and you get December 25th.
We don't see the Feast of Christmas itself celebrated until the 4th century. The earliest attestation is a Chronograph dated to the mid 4th century, basically a fancy calendar. And it lists December 25th as the Feast of Christ's Nativity. So at this time, the Christians around Rome were celebrating Christ's nativity on their liturgical calendar on December 25th.
Other Christians, as noted, tended to include the Nativity as part of the meaning of Epiphany, this continued to be the case in other areas of the Christian world. Which is why even to this day the Armenian Church continues to celebrate Christ's Nativity on January 6th, on Epiphany; never having adopted the December 25th date as the rest of the Church did.
For most of Christian history the Feast of the Nativity was considered a somewhat minor feast on the Liturgical Calendar. The two major Feasts, as it had been before Christmas was added to the calendar, were Pascha (aka "Easter") and Epiphany. This isn't to say that Christmas wasn't important, it's just that it wasn't as important as these two other feast times.
Christmas has slowly become a bigger deal on the Western calendar largely only in the last couple centuries, and this is in large part due to the influence of Britain and America; where Christmas has expanded into a full-blown cultural explosion. And that's been exported around the world. Anglo-American Christmas traditions, which are themselves a hodgepodge of various traditions (especially Dutch and German) has become what it looks like today.
But the celebration of the Feast of Christ's Nativity has been a standard of the Christian liturgical calendar since ancient times.
We have no idea when Jesus was born; but Christmas really isn't about that. It may have began with questions about when He was born, but we don't celebrate Christmas because that's "Jesus' birthday" in the same way that we celebrate your or my birthdays on the anniversary of the actual date we were born. Instead Christmas is a liturgical celebration, it's not about WHEN but THAT He was born.
As far as the Paschal Season, including Good Friday, that is all determined by the Paschal Computus, the official method of determining when to celebrate Pascha/Easter. This was established and standardized at the Council of Nicea in 325. As different parts of the Christian world used different computational methods, it meant that different communities of Christians were often celebrating the Feast on slightly different times. The Council of Nicea addressed that as a side issue, and the method of computation was established, and it's what we still use today.
We actually have a pretty good record of time-keeping over the last couple thousand years. We are still using, essentially, the same calendar that was being used two millennia go. The Julian Calendar was the reform of the Roman Calendar under Julius Caesar, the Eastern Churches still use the Julian Calendar, (either un-changed, or using a slightly reformed version of it). The Western Churches have all adopted the calendar reforms of Pope Gregory XIII, which we call the Gregorian Calendar. Because of this we know what sorts of calendarial drift occurred, and have accounted for it. The Gregorian Calendar is actually incredibly clever, where as the Julian Calendar did help fix the problems of the Roman calendar, it still resulted in a calendar drift that means that there is a 13 day difference between the Julian and Gregorian calendars today. Today is April 5th on the Gregorian Calendar, but it is March 23rd on the Julian Calendar.
So no, it's not going to be months off.
This means that both the Paschal and Christmas seasons are celebrated correctly, according to the way they are meant to be, as established historically through Christian practice. The only real differences are that some churches use the Gregorian calendar, and some use the Julian.
-CryptoLutheran