Hi, Alice.
First off: Thank you for this quick reply. I opened this thread just before I finished work for the day and when I started today, your answer just sat there waiting for me. Perfect!
Then I unpacked the example and had a good look at it.
I tried your suggestions. I already had the USB_RAM section yesterday, labelled RAM3. So I did
#include "cr_section_macros.h"
__DATA(RAM3) uint32_t array[10];
in global scope. Later I did
POWER_EnablePD(kPDRUNCFG_PD_RAM3);
array[0] = 0x01234567;
array[9] = 0x89abcdef;
and then stepped through the code. The address of array is correct:

But as you can see, all data is 0. In fact, all the USB_RAM is 0s. I tried omitting the POWER_EnablePD() line but then instead of 0s I get all 0xFFFFFEFFs (i.e.: 4294967039s).
Seems to me like for some reason the USB_RAM section is not writable. Odd.
Kind regards.
Garry