There are two causes that I can think of. The times when 'nothing happens' it is just possible that the ignition switch is faulty.
But I think you are correct in that it's the motor - whether it's the solenoid or the motor, the outcome is the same. You take it apart and fix it! Here's how.
- Disconnect battery
- Get under front of car and disconnect heavy cable to solenoid, unplug thin wire as well
- Undo three 13mm bolts holding starter to gearbox bellhousing and remove starter
- Undo two 8mm nuts holding brush-end housing in place
- Straighten split pin and remove from gear engagement lever pivot area. Push out the pivot pin.
- Remove rubber 'block' as you slide off gear-end housing.
Brushes are available at low cost from your FIAT dealer, worth replacing if less than 8mm long, IMHO.
Hopefully your problem is caused by sticky grease around sliding collar area/splines on armature shaft. Clean it out well with engine degreaser, wash and dry. I like to soak the freewheel unit in engine oil by standing it on the gear, in a small jar.
Clean the commutator's copper strips with 240, 400, and 800-grade wet'n'dry sandpaper. They don't wear much, but it's important they are smooth to avoid wearing the new brushes prematurely.
Assemble with a little grease where appropriate (bearings etc.).
The solenoid contacts can be taken apart once you desolder the wires to the winding, but I have never had a problem there so I don't think it's worth the trouble.
The starter motors are very strong and reliable in my experience. New brushes and a clean/lubrication should keep it going for a long, long time. Alternatively you could try your luck with a second-hand replacement, but unless yours is completely shagged (e.g. big grooves in burnt-out commutator, slackness in bearings, chewed pinion) I reckon you can rebuild it easily. Should only take a couple of hours (including painting of the housings with aluminium paint and the centre part in black!)
-Alex