Solve by substitution.
You will get that Steve is 18 and 8 months and that Robert is 5 and 4 months.
That's a weird answer, going into months. But it's correct.
Checking:
Steve [who is 18 years 8 months] is three and a half times as old as Robert [who
is 5 years and 4 months].
If you multiply Robert's age, 5 years and 4 months, by 3 1/2, you get 17 1/2
years and 14 months. 17 1/2 years is 17 years and 6 months, so you get 17 years
and 14+6 months or 20 months. That means that Steve's age is 17 years and 20
months, which is 18 years and 8 months. That checks.
In 8 years, Robert’s age [which will be 13 years and 4 months] will be one half
that of Steve's age [which will be 26 years and 8 months]. And indeed 13 years
and 4 months is one half of 26 years and 8 months.
So it checks. But their ages have to be taken to the month. Or, maybe you
copied a number wrong somewhere.
Edwin