I don't see your math, but let's 'assume' you measure a Vtemp of 738mV, AND make the assumption you don't re-calibrate Vtemp25 but take the datasheet nominal 716mV. IF your 'VCC reference' IS 3.00V, each LSB will be .04577mV, so 738mV nets 16,122 counts. Using:
Vtemp_mV=3000L*cpuTemp/65536
returns to 738, naturally. 25000-(738-716)*617 yields 11,426mC or 11.4C.
IF VCC is ACTUALLY 3% 'low', each LSB is .0444mV/LSB, so 738mV comes in at 16,620 counts. Using the same two equations, you will come up with 761mV, making -2.8C. A huge error, agreed. The 'small differences' in temperature voltages magnify the errors. 761 is indeed 3% above 738, BUT 'twice as far from 716'. A variation on the butterfly effect.
Also, the +/-10mV 'tolerance' on the uncalibrated Vtemp25 yields another +/-6C error. There is also +/-4% slope tolerance.
If you want to 'do better' in the 'worst case', you can certainly start by using Vref for the ADC reference -- I use a REF3030, which gives me +/-0.6% over devices/temp/age. A 0.6% 'low' reference, in the above case, yields 0.0455mV/LSB, a 738mV conversion result of 16,219 counts, 742mV, 8.9C. Only 2.5C off...
Better reference parts are obviously available, like MAX6071AAUT30 (about +/-0.1% over devices//temp/age). But you would also then want to calibrate each CPUs 'Vtemp25', and ideally find the slope for each device from a second temperature. You might also want to alter my math to work in 'tenths of millivolt' integers, as each mV in my integers represents 0.62C granularity.
Or 'give up' and put in an external ambient sensor like ADT75B...