Short answer: a wire is not made of free charges that can move freely, and current flow in a realistic wire is not an equilibrium condition.
Charge distributing itself on the surface, thereby maximising the distance between neighbouring repulsive charges and minimising the overall potential energy, is an equilibrium condition. That it, if you left the system for an infinitely long time to settle, that's the state it would end up in.
In reality a wire is made up of atoms with delocalised electrons, that is electrons that are still bound to the nuclei, but loosely so as to be easily knocked out. To move towards the outer surface of the wire, it would take them many scattering events with other atoms and electrons, which would result in recoil kicks and change of directions in random directions. And with a constant potential difference at the ends of the wire you always have a fresh supply of new forward (or backward) moving electrons ready to maintain the random kicking and knocking out.
By the way, AC current does flow on the outside of a wire, because of something called the skin effect.