Hello @rsating ,
I've attached an example that might toggle one relay on the board. As I said before I don't have this setup to test on but based on datasheets let's give this a try. I have only explained for the MCZ but for the other SPI devices, the connection is the same.
MCZ33996 requires 24 bits on each SPI frame. To achieve that, we have to use the continuous mode to transfer the bits in one frame. We will keep the frame size to 8 bit. But we are going to feed the SPI send block with an array of 3x uint8_t.

Now, looking on the schematic on your board, MCZ is connected via the SPIC with the CS on PCSC3.

I don’t have this board, but I’ve selected the same SPI instance, and the same pins on the board I have.
Now, there is another signal used for reset which is connected to the GPIO 456. So we have to use this pin to firstly reset the MCZ, then to start the communication.
I’ve used a simple FlowChart to firstly reset the MCZ (the RESET subsystem) then to send the output state for the pins.

As you can see here, the input is an array of 3 uint8_t.

For the command that we are going to send, the first byte will be 0 and for controlling the relay we are only toggling the bit 1.

Running this on the board will end up with some signals like this:

The Channel 4 is the reset, you can see the moment where the reset is pulled up. On each second you can see the communication signals.
By zooming on the communication frame, you can see the command being send, there is a higher time between each 8 clock bits. You also will see an Initialize custom code block that inserts such time. Should not be necessary but without that custom code, the timing will be too small. Let’s hope this will work.

I have attached the model and a simple FreeMaster project, but probably the LPUART instance has to be changed with the one on your board.
Let's give this a try and please reply to me with the results.
Hope this helps,
Marius