I think I've spotted the problem with the missing UVs: the one thing they seem to have in common is very, very long object names which Blender is truncating.
Blender has a name length limit of 63 chars (which is looow), so a rename is probably needed.
Some of them can be renamed, however the Model/Bone names cannot be changed as they must use exactly the same as the original file; otherwise D:OS won't load them.
Also my complaining about the inverted UV map looks to be a bit of a red herring in practice as, although the image is upside-down in Blender, it effectively reinverts it on output so it looks fine in game. It just makes editing a bit fiddly.
Yeah, that seems to be a Blender-specific thing, as I'm exporting the UV values 1:1 as they are in the GR2 file.
One thing that continues to confound me is that the mesh is no longer coming out smooth once Blender's had its hands on it: it looks like I've done a "faces->set solid" and no amount of attempting to get smooth outlines (set smooth, auto smooth, convert to quads etc) will make any difference. A bit of Googling suggests this is likely a problem with Blender's export function so I'm not sure if there's anything the Exporter can do about it, but if there's any suggestions... Edit: actually, remove doubles fixed it. Probably obvious to everyone else, so everyone else is welcome to lol at the noob.

GR2 doesn't support stuff like smoothing groups or co., so this only causes problems in practice if vertices are duplicated in the output file.