I’ve had this problem with the log too. And after a while I came up with a couple of thoughts as to what was happening.

Firstly, when the SOG is usually shown, it is “damped” or averaged over a period of time. I seem to remember that the choice is High, Medium or Low. But when you change the LOG (Tridata) to set from SOG, it shows the instantaneous SOG, not damped at all. I was suprised how much this jumped around even when I was motoring at a steady RPM. I guess this comes down to all sorts of errors in the system, like GPS update rates, NMEA/seatalk bus utilisation and plotter CPU load. Either way, the SOG jumps all over the place and it hard to use an instaneous reading to calibrate the log.

Second thing I found relates to your 6/9 kt comment. Originally I calibrated the log when I was motoring very slowly, say at 2 kts. But I remembered that even on the berth the SOG jumps around due to GPS errors, maybe shows SOG=0.2 kts. So say the SOG is accurate to +/- 0.2kts, on a 2 kt speed this means +/- 10%. So when you then speed up to say 7 kts, +/-10% means somewhere between 6.3 and 7.7. So I realised it was better to set the log when I was motoring as fast as possible, then the error of 0.2 would be a smaller % of the total. Also, do it motoring when upright and not under sail.

In the end I calibrated the log by setting the factor. After lots of runs, I “got used to” a certain RPM meaning a certain average SOG, and adjusted the factor to make the log match.

Hope this helps