^ I was about to post this before I read your comment. Remember it's the entire conductor that has to conduct current, not just the end connectors. Someone I know recently had an electrical fault that was traced to internal corrosion in a ground cable. It wasn't positively located until the insulation was stripped off the cable and visually verified, but the ohmmeter showed the fault.
Just for grins, what's the resistance in your main ground cable and the positive lead directly to the battery?
Unfortunately resistance testing can be deceiving . You could have 1 good strand of copper left in a cable, and a multimeter could show 0 ohms because it's only sending microamps for testing. However, you send any actual current through that cable and it would have a huge voltage drop.
What OP needs to do is measure the actual voltage drop when cranking. Put the positive test lead on the positive battery post, and put the negative test lead on the starter positive cable post (the other end of the cable). Try to crank the engine and write down the voltage reading while the key is turned to the start position. This will tell you the voltage drop on the positive wire.
Repeat the same procedure, but put the negative test lead on the solenoid wire at the starter. This will be the solenoid circuit voltage drop.
One last repeat, but this time put the positive test lead on the starter body, and the negative test lead on the battery negative post. That will be your ground cable voltage drop.
My money is on one of those pieces of the starter circuit has excessive voltage drop/corrosion/damage.