The "math" you say I suppose refer to the ages right?
Not to be the guy who says the same things all the time but I'll say again.
We only know stuff about the ages through interviews. Nothing sort of anything real, like a character profile inside a game or a manual or something like that.
What I got from the interviews was that they answered for the sake of answering. They had presented us with not even one information about Dante's age (or anyone's for that matter) up until Devil May Cry 2. When Devil May Cry 3 appeared, the told us that the twins are into their mid to late teens at the first interviews. Later they concluded that they are between 17-19 years old. For me, in their minds, at the time, they only cared about appearances and said that without much care since it fitted well with any of the other two existing games. DMC1 and 2 were both after DMC3 so they could play with a younger Dante's age as much as they wanted since it would not affect future games in any way.
Then the anime and DMC4 came. That's when they started messing up stuff. Apparently Lady is about 10 years older after DMC3 in DMC4. However DMC4 is also about 10 years after DMC1. And the anime is somewhere in between DMC1 and DMC4 since both Trish and Lady appear but Dante is in his DMC1 outfit already.
Nero's age is also 16-19 at one interview, then changes to "about the same as Dante & Vergil's in DMC3".
My point? They never gave much thought in regards to the ages. They only cared to try and tell us of a timeline which goes like this DMC3->DMC1->DMCAnime->DMC4->DMC2. And right now we don't even know whether the anime is canon. Somewhere in the anime Dante admits to having used the alias "Tony" in the past, hinting of the DMC1 Novel which is not canon anymore.
So personal opinion? Even they can't decide/don't really care about the ages. Therefore anything is possible. Nero can be Vergil's son or can't. Capcom could do anything with him. It's not like even the existing games make absolute sense with each other, so why should the ages?
/rant XD