realmente te devuelve bien la diferencia de días y horas, lo que pasa que no como nos gustaría
el valor que te da
Total:= 31/12/1899 16:00:00 es la direncia real de días y horas. 16 Horas y ha pasado un día, la fecha TDateTime comienza el 30/12/1899 asi k si te fijas en tu resultado 31/12/1899 ya te está indicando que ha pasado un día entre las fecha que querias comparar.
Salu2