Hmm. Not exactly what I’d expect. Did you mean -12v? When the starter is running, with the neg meter lead at the - batt terminal, and the pos meter lead at the relay, I would have expected to see 11+v or so (meaning that most of the voltage drop is in the starter not the relay or wires up to that point). Measuring the way you describe, you should be measuring the voltage drop between the batt and the relay, which should be very low <1v. No clue how that would be negative.
Did you try jumping 12v to the small lug that causes the starter to start? A short jumper from the big wire on the starter to that starter wire’s lug should do it. If that causes the same results (clicking, barely or not turning) with a good battery, then it likely is either the big wiring to the starter or the starter itself. Most starters have a solenoid which engages the starter gears and switches the starter motor on. Sometimes that solenoid can go bad. Could also be the wires and/or connections on the wires to the starter, that big fat one of the smaller starting wire to the solenoid.
Jumpering from the big 12v wire on the solenoid to the small wire connection there which turns it on, would be a useful test. If it cranks ok with the jumper, then it is in the wiring to the start terminal on the solenoid. If you get the same cranking result with the jumper, then either the big wiring to the starter or the starter/solenoid (or a bad ground connection). If you have long enough jumper cables, try putting one cable from + on the batt to the big wire on the solenoid, and then redo the jumper test. And if you really want to be complete, put the neg jumper cable between - on the batt and the case of the starter. If that works, then it is that wiring from batt to starter or the ground if you added the - jumper cable to the case; if no diff then it is pointing to the starter. [Be careful with these wires, especially the big one between the starter and the batt. It is NOT fuse protected and will create big sparks and massive currents if you ground it out somehow. Fires, and destroyed batts can result] You could also measure the voltage at that big wire on the starter when its trying to crank. See how much it drops when the starter is running.
Also, wiring issue can be due to bad/dirty connections. Sounds like you just swapped batts, so I assume those are clean. But the other wire connection can get dirty/rusted/corroded. Again, best to disconnect the ground on the batt before starting to clean any of these just for safety.
Starters can be rebuilt, and a bad solenoid can be replaced. But these days most commonly people just replace the whole starter. The big box auto shops generally can test a starter (you have to remove it and bring it in) if it comes to that.
FWIW, I fought with a similar problem with my tractor for a while. What it turned out to be was a loose connection on the clutch safety switch which does not allow the starter to run unless the clutch is depressed.