The elinux.org guide for updating the pinmux on AGX Xavier says to flash the device:

sudo ./flash.sh jetson-xavier mmcblk0p1

Will this overwrite the entire block device? I’ve already configured the OS quite a bit and don’t want to start from scratch just to make some GPIO changes.

hello ian05j9y,

you may refer to Configuring the 40-Pin Expansion Header, for enable Jetson-IO python tool to configure GPIO pins.
you must flash the board completely if you’re customize pinmux file to have board configuration,

If I run the following command:
/opt/nvidia/jetson-io/config-by-function.py -l all

It only lists spi1. Does this mean spi2 and spi3 cannot be enabled on this device?

Sorry, to tell this tools only for Nano/Xavier NX 40 pins configure.