And the pinion gear is not being fully extended, which could cause the grinding. Check voltage at the large terminal on the solenoid that is fed from the battery switch common, or battery if no switch. Should be at least battery voltage. Then disconnect the yellow/red wire from the solenoid, hook a voltmeter to between it and a ground and have someone turn the key to start, this will tell you if you are getting a full 12V at the solenid start terminal. If not you have to go back and clean every connection between the switch and engine harness.
Your ignition switch will have 3 terminals, one labeled B (battery voltage, red wire, has 12V anytime the battery switch is on), I for ignition (purple wire, gets 12 V when ignition switch is turned to On), and S (yellow/red wire, gets 12V when ignition switch gets turned to start). I'd pull the swtich out of the dash if your start terminal on the solenoid shows low voltage and start there. Places to check, battery terminals, battery ground points on the bell housing, connections at the starter solenoid, connections at the assist solenoid, connections on the ignition switch and the big cannon connector for the engine harness. Corrosion anywhere can cause a problem like this.
If you have wingnuts holding down your battery cable terminals on the battery get rid of them and use locking nuts, or bolt on marine quality battery clamps, Make sure the cables are not corroded and don't forget to check the grounds, its usually a stud on the bell housing behind the exhaust hoses. DC electricity must travel in a circle to do anywork lol.