Writing a GeoTIFF with a local coordsys (e.g., WKT string is just LOCAL_CS[,UNIT["m",1]] ) writes the image out and an associated .tfw can be output by setting TFW=TRUE, but when reading back in, the measurement unit information is lost.
While the projection transform comes back okay, what's happening is that the WKT string returned by GetProjectionRef? is an "unknown geo cs" using WGS84 datum and degrees. Specifcally:
GEOGCS["unnamed",DATUM["unknown",SPHEROID["unretrievable - using WGS84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]]
The .tfw file has the normal six lines of the transform values but no unit data.
I've defaulted the priorities for this, but personally, it's critical; I have to support georeffed textures including localcs for a client and if a mainstream image format can't do it, I have to roll my own or do some undesirable hacking.