Rough up your commutator and brushes lightly with a 3 M pad. Make sure there is no oil or grease on the part the brushes rides on.
The solenoid connection, the main starter cable or even a grounding problem. Clean all your connections and grounds up good, sure won´t hurt anything and may help.
Only seen it once, but had a starter that was covered in oil, the bolts were covered in oil and the starter mount was covered in oil. Starter worked sometimes, till I cleaned everything up. Kind of thing that will drive you nuts.
I had one that spun but wouldn´t engauge the teeth, something in the Bendix, I never did figure out, a microscopic burr or something.
I rarley turn in my cores, I rebuild them and keep them on the shelf, for emergencies, I have a couple of spares.
The field windings (in the case) and the aramture windings (the part that turns) raley mess up. Might be worth an ohm test for shorts/continuity, when all else fails.
Never known water to hurt much, except maybe to promote rust and jamming, but mud or anything that gets under the brushes will mess you up. Sand or mud stuck to the Bendix will sometimes jam up the Bendix so the teeth don´t engauge, rust in the solenoid plunger.
There is an overrunning clutch in there, that will allow the shaft to spin without turning the teeth, that occasional screws up. Hard to notice on a bench test, starter needs a load, to make the clutch slip. Doesn´t sound like what you are experiencing though.