A difference of 25 in base Speed does make a pretty big difference.
Let's look at the stat formula for a moment:
floor(floor((2 * base stat + IV + floor(EV/4)) * level / 100 + 5) * nature)
Now focus just on the 2 * base stat + IV + floor(EV/4)
bit. Let's call that the "base value" of the stat. As you can see, both the base stat and effort values only affect the base value. Notice how the base stat gets multiplied by two - that means a 25-point advantage in the base stat actually means the base value of the stat ends up 50 points higher.
Meanwhile, maximum effort (252) will increase the base value by 63. This means after your 50-point base stat advantage is factored in, you only need to boost the base value by 13 more points to catch up - something you can do with just 52 effort points in the stat. Obviously, if the base value is the same and the Pokémon are both Timid and level 50, the final stat will be the same as well, since the only things that affect the stat formula outside the base value are the level and nature. With 60 effort points, you can then manage to get the final stat a full point higher than Latios's.
In other words, the math looks entirely reasonable. You're doing it right, so trust your results! Base stats make a pretty huge impact on the stat calculation.