This worked like a dream - THANK YOU SO MUCH!
For anyone else finding this post this is the procedure I followed:
Installed SSH & Web Terminal add-on and setup. Disabled protection mode temporarily. Open the web UI and paste:
echo ] | (sudo docker ps --format "{ {{json .ID}} : {{json .Names}} }" | paste -sd',' && cat) | (echo [ && cat)
Find the one with esphome in the name e.g. addon_5cxxxe3b_esphome then execute:
docker exec -it addon_5cxxxe3b_esphome bash
Type ls
for list of directories - you should see /config/ and /data/ then type:
cd /data/esp32-mycode/.pioenvs/esp32-mycode/
where esp32-mycode is the name of your esphome device (use ls again if unsure to look at the options)
then execute this to copy the firmware file to the /config/ directory:
cp firmware.elf /config/
The config directory is synced with the home assistant one so if you view the normal file browser add-on for HASS you should see the firmware.elf file and be able to download it from there.
Thanks again!