Errors in datum shift?

I seem to be getting an error when trying to shift UTM data in zone 8
from GRS80 to CLARK66. I convert the points using the command :

m.u2ll spheroid=grs80 zone=8 <in.txt | m.ll2u spheroid=clark66 zone=8 >
out.txt

The results do not agree with shifts given by an internal calculator on
our GPS receiver (Magellan Pro 5000 ) and a PC based program called
"Geographic Calculator" ( which agree with each other). For example, an
input coordinate : 529006 E 7729798 N
shifts to the output position : 529124.6E 7729614.7 N
using the GPS and Calculator method.

The GRASS command returns 529007.2E 7729621.3N for the same input
( difference of ~120m in easting and ~7 m in northing )

The alpha command "m.proj" gives yet another result for the same input
in : 529006.0 E 7729798.0 N out: 529006.4 E 7729934.0 N
( difference of ~120 in easting and a whopping 320 m in northing )

Has anyone noted these type of errors before? Are there any answers
that explain these discrepancies?

Bob Courtney
Atlantic Geoscience Centre
Bedford Institute of Oceanography
courtney@agcrr.bio.ns.ca