Hello, maybe the ring gear has damaged teeth? this can keep the pinion stuck in mesh, have you replaced the starter relay? (contacts could be sticking)
As said, check pinion stroke too or it will get stuck in mesh.
Solenoids have 2 x windings. (2 x coils in one solenoid)
first winding goes from start terminal through to the brushes, it finds ground through the armature.
This one draws quite a bit of current to "throw" the pinion out to the flywheel.
Aha! But once the pinion is thrown, the contacts come together, and hey presto this winding has a + signal on both ends!!!! Therefore the solenoid would dis engage.
So we have a 2nd winding, which goes from start terminal to ground. This one is smaller and weaker, but is strong enough to hold the pinion in place, not strong enough to throw it out.
So we have a "pull in" winding, and a "hold-in" winding.
So, if your starter ever "chatters" then the hold in winding is probably crook.
Also 6 cyl motor will stop on a compression stroke, so there will be 3 x main points of contact on your flywheel, where the starter always engages.
Sometimes the ring gear has to go, some tight asses have just rotated it and bolted it back in.
just my 2c.