You might be able to take advantage of the fact that dates can go as high as 9999. That gives you a lot of years to work with, most of which you will never need.
In the Gregorian calendar, as I understand it, there is a repeating cycle every 2800 years. That means that in 4802 the calendar will be exactly the same as in 2002.
If you are willing to go to the trouble, you can store dates as (actual date + 2800 years). Then you can do calculations based on SQL Server date functions. Of course whenever you display a date, you will have to apply logic that subtracts 2800 years from the date that would otherwise appear.
I wouldn't bet that this is the easiest way to do what you want, but it may be worth a try. As always there's a trade off. In this case you would get to use SQL Server date functions at the cost of having to calculate the 2800 year offset every time a date is entered or displayed.