So setting the new central_meridian = 180, really means it will apply a rotation around the south pole (really a rotation around the latitude_of_origin, which was set at -90). That makes it more tricky to apply any X/Y offsets. The offset here happened to be in X. On the map, after the rotation is applied, the shift is actually -2km (to the left). But we need to apply the shift before the rotation, so I had to apply a +2km shift to the VRT header.
Note this is likely unique value for this image and every shift could be different – again since these are uncontrolled images.
So with that out of the way. Here is the key to how images are registered in the Cartesian system as defined by the map projection. Note the first parameter is the X Offset in projected units (usually meters). Geotransform Tutorial — GDAL documentation
From the original ``<GeoTransform>``
-3.2661179801298999e+02, 8.1652949503247001e+00, 0.0000000000000000e+00, 2.2536214062896001e+03, 0.0000000000000000e+00, -8.1652949503247001e+00
I took the first number -3.2661179801298999e+02 + 2087.0, so this would be the updated ``<GeoTransform>``
2480.38820198701001, 8.1652949503247001e+00, 0.0000000000000000e+00, 2.2536214062896001e+03, 0.0000000000000000e+00, -8.1652949503247001e+00
Obviously, the decimal precision is a little crazy, but what was in the original. So where did 2087 m come from? I just used the measure tool in QGIS between the image and the LOLA Site11: de Gerlache rim DEM: PGDA - High-Resolution LOLA Topography for Lunar South Pole Sites
BTW, this is not normal – we should not need to update map projections. Most of the time, map projections are correctly and automatically transferred from one format to another. Now planetary data often has horizontal shifts, especially if not controlled.