Well I don't want to claim that this fixed the problem, but I did manage to get both cores to execute my code...
I was/am suspicious of how gdb tells JLINK to write to flash, so instead of using gdb hooked to the jlink gdb server, I just created a simple jlink script that would load each of the sections manually (see below). To do that I needed to extract each of the loadable sections from the .elf file into their own binary file.
With each of the files created I was able to run this script:
eoe 1
device=MIMXRT1176DVMAA_cm7
speed 4000
si SWD
r
h
loadbin elfsect_.flash_config.bin,0x30000400
loadbin elfsect_.ivt.bin,0x30001000
loadbin elfsect_.core1_code.bin,0x33fc0000
loadbin elfsect_.interrupts.bin,0x30002000
loadbin elfsect_.text.bin,0x30002400
loadbin elfsect_.ARM.bin,0x30008d00
loadbin elfsect_.init_array.bin,0x30008d08
loadbin elfsect_.fini_array.bin,0x30008d0c
loadbin elfsect_.data.bin,0x30008d10
go
exit
to load the CM7 and things worked. It appears that while the jlink server was saying that it verified the download, the verification was failing.
Can someone (NXP support) explain this?