Theoretically, this could work: Pico to Pi HAT, battery HAT, pin-extender socket, Inky Impression. But this would be very unstable mechanically. And it would constantly feed 5V from the battery to the Pico. So you will have to make sure you use intelligent power-management (sleep-modes) from your program.
I have a similar setup with an Inky Impression 5, but I am using my own Pico to Pi HAT and in addition a power-shim for the battery. You can look at this post for details: Weather display project - #15 by bablokb
(scroll up from that link which only shows the image, a few posts up there are a few links to the adapter-hat and the shim).
I got the Inky Impression 7.3" (the old one)
and connected Pico 2W using the Pico to Pi HAT
No batteries so far.
I got an issue rendering anything on the display.
Flashed the lates inky micropython (Releases · pimoroni/inky-frame · GitHub).
Uploaded the jwst5.jpg image.
The pico just crashes (guessing) as soon as the code try to execute the line graphics.update().
After that the only way to recover is to use flash_nuke.uf2.
Same happens if the screen is connected or not.
Do you have any ideas what could be the issue, and/or what I can try?
Is it possible for the PicoGraphics to be expecting a connected display or else crashes, and the Pico to Pi hat does not connect to the pins that PicoGraphics expects.
Yep, this should be the cause of your problems. You can look up the pins that the InkyFrame uses and compare this to the pins of the adapter. You have the mapping Pi-Zero-GPIO->Adapter->PIco-GP and this GP is not necessarily the GP that PicoGraphics expects for the InkyFrame.
I am afraid that you need to make your custom build for the Pimoroni MicroPython, because I think they hard-wire their pins. Not fully sure, but I think this is the way it is.
That is a good start. But you need to configure three more pins: busy, reset and data/command. These are not related to the SPI-bus, but to the display. See Inky Impression at Raspberry Pi GPIO Pinout