It is all position based. The algorithm weights certain attributes differently for certain positions. If you changed any of those guys to a second baseman they would all be 99 easily. You can't compare players at different positions based on overall rating in this game.
I agree that it is weird, and I don't understand why it makes such a big difference but when I create my diamond dynasty player he is always rated highest as a second baseman.