So, how does a person convert from Latitude and Longitude to UTM and back again. It is not a simple bit of scaling and translating from one grid to another.

This is a mildly prickly business, because there are a number of different reference ellipsoids, both for Latitude Longitude and for UTM. If the earth were a sphere (or better yet, a cylinder) things would be much easier, especially if we agreed on the radius.

All that aside, a great starting place is the page given by Steven Dutch on this topic:

A fellow named Chuck Gantz wrote a number of routines in the C language and made them available to the public:
Feedback? Questions? Drop me a line!

Uncle Tom's Computer Info / tom@mmto.org