Let me start a new thread as the old one became very long and involved, and thanks Jim for your contributions.
The attached videos sum up the problem, showing the app crashing out of memory on the device but running continuously in the simulator with a Peak Memory of 109.1 kB.
The app is crashing at a line which is displaying a 550 byte PNG image.
What I have established so far.
According to the Devices.xml file, the fenix5 has 131,072 bytes, or 128kB of memory
Of which 124kB , or 126,976 bytes are available to the developer for code and program data. (so why tell us we have 128kB?)
When I run my app on the simulator, its Peak Memory is reported as 109.1kB (111,718 bytes).
When I add logging of memory used, before the crash line, the sim reports 107,816
and the app reports 120,744 (That's a massive 12,900 bytes difference.)
My question is: Why is my app crashing on the device, with 127,472 bytes of available memory when it apparently has (126,976 - 120,744 =) 6,232 bytes of memory to display a 550 byte png image?
https://youtu.be/SgU2MzJa7Bo
https://youtu.be/lnfaWpR6AzA
I am confident that as far as humanly possible, the two runs are using the same data. I have re-run the experiment many times with the same result running different data with the same result.