I assume that you aren't running this for any specific length of time, rather all rows.
Since you're not really doing a Grouping, rather a summary of varying years activities, you might use a series of Running Totals to do this (unless you want to us advanced SQL in an SP):
I also assume that the Seniority date is the first work date (you use different terms for dates, as in anniversary, seniority and check without qualification, please be consistent and specific rather than just typing your train of thought):
Running Totals summing the hours with something like the following in the Evaluate->Use a Formula:
{table.workdate} >=
cdate(year({table.hiredate}),month({table.hiredate}),day({table.hiredate}))
and
{table.workdate} <=
cdate(year({table.hiredate})+1,month({table.hiredate}),day({table.hiredate}))-1
the next year would be:
{table.workdate} >=
cdate(year({table.hiredate})+1,month({table.hiredate}),day({table.hiredate}))
and
{table.workdate} <=
cdate(year({table.hiredate})+2,month({table.hiredate}),day({table.hiredate}))-1
You would repeat this for each year incrementing the year by one for each year.
Then place all of these running totals in seperate sections and use a suppression formula for each section such as:
cdate(year({table.hiredate})+1,month({table.hiredate}),day({table.hiredate})) > currentdate
For each section where the +1 part is the equivalent to you >= clause of the Running Totals.
There is a subreport idea that might work, but as I don't like subreports, and the performance is worse, this will work.
-k