SCT013 value consistently too low

It is indeed. I’m happy for you to use U, if this is what you learned.

But you DO. VCal & ICal are applied to the voltage, the current and the power calculations separately. You should not need to adjust ICal, but the European a.c. adapter requires a different VCal to the UK one (which is the default value in the sketch), in addition to it’s output being subject to a tolerance of ± 3%, so you will very likely need to get the correct value for this by measurement and comparison with a known good meter.

You either get it from the manufacturer, or you measure it - and this is the hard part. You can read how I tested the UK a.c. adapter here: Ideal Power 9V AC-AC Adaptor (Voltage Transformer) — OpenEnergyMonitor 0.0.1 documentation and the SCT-013-000 current transformer here: YHDC SCT-013-000 Current Transformer — OpenEnergyMonitor 0.0.1 documentation

I didn’t – those are Megni pictures from their Digital Storage Oscilloscope.
Since I did those tests on the Ideal v.t and YHDC c.t’s, I’ve got a two channel DSO too (not the same make), and I now use it to record the two waves (primary side and secondary side) and I use a FFT in a spreadsheet to determine the phase error. It is much more precise than trying to read the time difference at the zero crossings: ZMPT101B, powerfactor and current shown - #52 by Robert.Wall and the rest of this thread is well worth reading too.

Yes to the first part, but it reads both V & I in this 34.7 µs. It’s true that there is 34.7 µs between one V sample and the next, it will not be true that there is 17.35 µs between V & I samples.

This does look reasonable to me. But the next part is wrong - with 0.63° between samples of the same V or I, and maybe 0.09° (though I suspect it might be a little longer) between V&I) you still have something like an angle of 2° difference between the phase errors of the two transformers, and it is this error that is the principle part of the total phase error. (2° comes from my test results in the links above.) You cannot have a phasecal of 2 / 0.63 = 3.17 and not have a huge error in the synthetic voltage sample that’s created in the interpolation maths (it is now EXTRAPOLATING). As I suspected, you will need to store some samples, or slow the rate at which your version of emonLib reads the sample pair.