I want to build one with an M2 chip using readinternaltemp. Even if it requires custom calibration, it would make a great minimalist project.
Sounds like a plan, and you can make yourself the forum's READINTERNALTEMP expert along the way !
This is the application note you want if you haven't got it already -
http://ww1.microchip.com/downloads/en/AppNotes/01333A.pdf
Figure 4 is the key, what a 'READADC of the temperature indicator' would give, though you'll be using a 10-bit result as if READADC10.
After that, it's just a case of dealing with it as any other READADC10 reading needing to be adjusted to what it actually means.
Start with the IT_RAW readings for READINTERNALTEMP at known temperatures and build up from there. I think it's IT_RAWH that gives higher / wider range readings than IT_RAWL but requires a supply of at least 4V ...
READINTERNALTEMP IT_RAWH, 0, w0
Have fun !