The problem lies in the fact that your reference block is far away from origin 0,0,0... I suggest that you use (rtos) function with each point coordinate to get appropriate accuracy you need and then export to excel with higher precision values...
So something like this :
(setq f (open "c:/test.csv" "w"))
(write-line "X,Y,Z" f)
(write-line (strcat (rtos (car pt)) "," (rtos (cadr pt)) "," (rtos (caddr pt))) f)
(close f)
should be better if :
(write-line (strcat (rtos (car pt) 2 20) "," (rtos (cadr pt) 2 20) "," (rtos (caddr pt) 2 20)) f)