Take the round black cylindrical connector cover off the starter motor if still fitted (often held with a white cable tie).
This will reveal that the starter has two big connectors: one is always connected up to the battery via a heavy lead and is the upper one as you look down to the starter from the top of the engine bay.
The other (lower) one has a wire that appears to go into the starter motor itself.
The small cylinder that holds these two connectors is the starter solenoid. You'll notice that this has its own small lead. When you turn the key to the 'start' position, the small lead on the solenoid receives battery voltage. This energises a coil which effectively bridges (shorts) those two big connectors internally, allowing that battery voltage down into the starter motor, making it turn.
You've already discounted the earth side of the circuit.
1)To test the power / positive side:
Set volt meter to DC Volts and if you have the choice, select a voltage that includes 12V, often 10-20V or similar. If it just gives 'DC Volts' with no voltage options, it's auto-ranging and will sort itself out. Put the red (+'ve) lead on the upper (to battery) starter lead, and the black (-'ve) lead to a clean bit of the engine block. You should see the same voltage as the battery (hopefully about 12.7 volts or thereabouts). Get someone to turn the key to 'start' whilst still checking here, if your voltage falls by several volts, you have a failed lead or a failed connector somewhere. Sort this before going further. Try this test on the end of the lead itself and again on the middle of the thread of the terminal / bolt. I.e. you're testing the lead and then making sure the power from the lead is actually reaching the solenoid and the connector is clean.
2) If above checks out and you're getting full battery voltage to the starter, next check the solenoid is being powered up:
With the meter just as it was, pull the little lead connector off the solenoid and check you have battery voltage up in that plug when the key is turned to start. You still need the black meter lead on the engine block and as the key is turned you should see the volts go on and off from zero(ish) to battery volts and back to zero when the key is released. If there is no power here, you've found your issue. It'll be wiring, immobiliser or ignition key. You can test this by leaving the little wire off and jumping a small wire from the upper big connector (with the permanent battery voltage) to the little connector on the solenoid: if it suddenly works, it's definitely something on the car itself rather than the starter / solenoid.
3) If the solenoid is getting power but the starter still isn't turning, next bypass the solenoid:
With a pair of safety specs on and an old screwdriver to hand and IGNITION OFF, use the screwdriver to briefly short out the two big terminals: this is exactly what the solenoid does every time you use it. Be super careful NOT to touch the metal of the screwdriver anywhere else when you do this. It sounds very dodgy but is fine, it may spark however. Anyway, if you get nothing, you're 100% sure of the earthing side of things and you had battery volts as per above, it's definitely the starter motor and you can change it knowing you've done all relevant testing. If it sparks and the motor suddenly turns the engine over, it's the internal solenoid connectors. These can often be cleaned or you may elect to change the starter motor anyway.
Starter out of the car, or you've been offered one from under someone's work-bench?
Using jump leads, put the battery negative to the body of the unknown / unfitted starter motor. Pop your safety specs on, hold the starter motor down to the ground with your foot (hard) to stop it twisting. Connect the positive to the battery and briefly brush the other end of the jump lead on the starter motor lower lead (the one that goes into the motor). If the test battery and starter are good, it should leap round. Next test is to connect the positive to the upper big terminal and then short between that and the small solenoid connector: again the starter should spin. This means both starter and solenoid are probably O.K.
Now, as it happens, the starter on my TDi has been noisy / screeching ever since I got it, and as soon as the Winter set in it was also turning very slowly. Like you I had replaced the battery, cleaned the earth lead connections and then doubled that up with a new lead in a different location. Battery voltage at the starter was perfect and there was no earth leakage, which I tested by putting the meter to 'DC Volts' and put one lead on the block of the engine and one on the car body at a clean point. No volts showed during cranking, so I knew the earths were now perfect. Had I seen a voltage of more than, say, 0.5V I'd have improved the earths further.
Anyway, with all checks done I concluded the starter was indeed on its last legs, and replaced it. One day in and it's screeching as badly as the old one, but is turning the engine at full speed. I've rejected it and a real new Bosch is on its way (which is that I'd tried to get in the first place!).
HTH and apologies if this overlaps previous posts but it's my complete starter motor test regime all in one lump.