Where did the calibration coefficients you used in line 31 come from? They could be in error. The raw value of adc0 in line 26 is a bit count and 65536 (2^16) is the maximum which would be the value output if the analog input was connected to Vdd (~3.3V).
Don’t know why the zero offset. I would try printing out your raw adc0 with the analog input grounded and with it connected to Vdd. Measure the Vdd with your Fluke DMM using that as your reference and adjust the calibration coefficients accordingly.