I find it easier to reason about the year and the month/day separately:
concat(int(format-date(today(), ‘%Y’)) + (50-${age}), format-date(today(), ‘%m%d’))
That would be the correct expression if the service was provided today. You probably need to use the service date both to calculate the age and the components of the expiration date.
To compute a date N weeks from now:
format-date(date(decimal-date-time(today())+(N * 7)), ‘%Y%m%d’)
Same as above, you'll need to use the service date rather than today.
If you haven't already, I also encourage you to consider whether the form needs to compute these dates or whether it's something that can be computed in analysis.