The TLDR for this issue is that there were some huge files in the folder .System/SID/ which had eaten up all the free space in the device. I deleted the earliest group of these files (all dated 2022) and gained about a gig of free space, allowing the Garmin Express to update the device normally. I expect I shall have to repeat this operation before every update.
--
After struggling to get my Garmin Drive 52 with lifetime maps updated, I eventually found a log file which shed some light on the reason. But unfortunately, it means that my Garmin Drive 52 has become obsolete within 12 months. The reason is that there are some files which MUST be stored internally, and hence even adding an SD card doesn't help the situation. The Drive 52 internal memory is 4 GB, and once it's full, then it cannot accept any more updates. I've tried deleting everything that can reasonably deleted, but it hasn't helped at all.
The log file I found resides in Library/Application Support/Garmin/Express and is named Service_<date and time>.txt, and is easily read using TextEdit.
Here you can see Garmin Express struggling to find space on the internal drive, before giving up. Note that I've trimmed date/time information off the start of each line:
AutomotiveOEM rule does not apply. Device is not an AutomotiveOEM device.
AutomotiveOEM rule does not apply. Device is not an AutomotiveOEM device.
Under2GBRule rule does not apply. No region will fit internally.
Internal install rule does not apply. The update does not fit internally.
Adding software file to locale: en size: 2344764
Adding software file to locale: en size: 2054716
Total size of software to remove: 0
Total size of additions to ignore: 0
Required size to allow auto-deletion of unnecessary languages: 1661119256
Total size of all language pack files: 4399480
Size of largest language pack: 4399480
LanguagePack rule does not apply. Map will not fit even if all language files except one are removed.
Not enough space to fit additional files internallySDRule does not apply. There is not enough internal room to fit all internal only files.SupplementalMaps1 does not apply. Device does not support this protocol.
Smaller region rule does not apply. No region will fit internally.
[MapUpdate-EU.2024.20-3423278981] Failed with error: Error Domain=RenuErrorDomain Code=103 "The specified map will not fit on the device." UserInfo={NSLocalizedDescription=The specified map will not fit on the device.}
==
I think the log speaks for itself. The Drive 52 is obsolete after less than a year.
Fortunately, I bought mine as an Xmas present to myself last November, and it's still just in warranty. So I'm taking it back to the shop tomorrow and asking for my money back. I sure hope that someone thinks of a work-around that will allow the SD card to be used to store all files on the device.
The sad thing is that I really like Garmin sat-navs, and I'm more sad than angry, so I'll probably use the money to buy another one - but with a much bigger internal memory.