Good news.
I installed the toolchain, including Vivado and Vitis.
I spent some time tinkering and learning, getting it to boot up the "hello world" sample thats included, with no memory controller etc, just the zynq itself.

That seemed to work after learning the toolchain a bit, and struggling a little with the new version of Vitis.. appeared to hang and do weird things. I was able to have it send stdin and stdout to the jtag uart.
I went back to "Vitis Classic" and got back to square one, re-learning the IDE, reproduced the same hello world program.
One thing that I found was that I had to change it from using the FSBL it was building, to bringing board up with tcl script.. in the "new" version of the IDE Vitis, it would run FSBL and wait for it to hit an exit command - maybe this was never hit because it doesn't have debug symbols enabled for the FSBL.. not sure, but this would cause it to not load the hello world ELF file and it would stop.
In the old version of the IDE, it would actually progress past this stage, maybe on a timer.. so that was a suggestion that the FSBL was infact functioning.
I went back to the "Program Flash" command, now under the impression my FSBL was OK. This time in the debug console it actually loaded a "mini uboot" binary that is included in Vitis but it hung once it tried to access the QSPI - This wasnt enabled in the hardware platform.
I went back to Vivado and enabled QSPI and recompiled everything. Tried it again and away it went - I reflashed the original .bin file I had dumped through linux as /dev/mtd0, 1, 2, 3, 4, and it appeared to verify ok but at the end of the verification the function hung.
I repowered the board and just from the LED's on the back I could see it had booted the linux system.. plugged in the network and its back to square 1.