It seems that GMT gets confused when grid files have unsigned 8 bit integers in them - perhaps assuming that they are supposed to be characters.  At any rate, casting the results of the rasterize function to be signed 8 bit ints, which seems to make GMT happy.