After some trial and error with overscan settings I've made a little progress. Using overscan_scale=1 carries the changes through to MAME, so that's been helpful.
Using the following overscan settings allows me to move the image at the top of the screen down (this would be the right side in landscape mode), but any value for overscan_left (bottom of my screen) pushes the image up - even if I use a negative value! So that just squashes the image more. Leaving overscan_left at 0 results in least squashing, but doesn't move the image down, so I've still got that black border at the bottom of the image, and it's still a bit squashed.
overscan_left=0
overscan_right=80
#overscan_top=16
#overscan_bottom=16
overscan_scale=1
Any more suggestions greatly appreciated!
PXL_20250205_085613913.jpg
EDIT: I've found a solution - there are options in the retroarch gui to move the image around the screen, but you have to select window mode rather than full screen, and use a custom aspect ratio. These options are hidden if you're in full screen mode which is why I didn't see them earlier!