IRFZ44 is not rated for 5V gate drive, it needs 10V. There are tons of cheap dual SO-8 MOSFETs with similar RdsON that can be driven with 5V from your 74HC595, and they take less space on the board.
If the solenoid current is low enough, you can use NPIC6C596 instead, which has integrated MOSFETs.
MOSFETs will require gate resistors to prevent oscillation if traces are long, maybe 100R or so.
The diodes are OK.
HC595's need decoupling caps, since there are lots of gates to drive I'd suggest 1µF 16V X7R SMD MLCCs. Also to avoid ringing in 5V power distribution, a local electrolytic cap on each board can be a plus. Value uncritical, 33-100µF, preferably cheap and general purpose with lots of ESR for damping. Check the maximum capacitance load of your 5V DC-DC. Same effect can be achieved with a few ohms resistor between the +5V supply and the 1µF MLCC decoupling cap.
HC595's require 5V signal. If your arduino outputs 3V3 signals, use 74HCT595 instead. Or better, to keep the higher noise margin of 74HC chips, use a HCT buffer to translate 3V3 to 5V, then keep the HC595.
HC595 pinout looks incorrect, also this chip does not have two SRCLK inputs while your schematic does, and it has a Reset input which is not on the schematic. In fact connections to the shift registers look a bit weird.
HC595 shifts data in and out on the same edge of the clock. If the clock runs in the same direction as the data line, this can cause problems. You can add an extra line in your board daisychain to route the clock to the other side, then back, along with resistor footprints to connect HC595 to the clock line you're actually using.
There is a large amount of capacitance on +12V rail. Check your SMPS doesn't have a "maximum capacitance" rating that conflicts. Also this will make a huge spark when you connect the 12V battery, and possibly weld the switch, so a soft-start with a resistor would be a good idea.
Given the huge current circulating in GND, the metal plate is a good idea. PCBs with solenoids should have their grounds tied to it with a very low resistance connection, like screws and metal PCB spacers. If this is unscrewed, solenoid current will flow in the GND wires, or any other ground connections between boards, which will cause problems. Maybe a soldered connection would be more reliable... it has to be close to the MOSFETs so the current doesn't flow through the whole ground plane, just locally.
However GND on each of the 11 circuit boards could still lift relative to the others, which could corrupt the signals to your shift registers or cause latchup. I'd add a BAT54S dual diode on the inputs to make sure the HC595's don't get some nasty spikes on the inputs.
Fast digital signals should be source terminated with 33R, this includes the data outputs of HC595's.
If the boards are connected with wires, this isn't really compatible with fast digital signals. It would be better to daisy chain them with 0.1" headers. These must include GND pins between each signal for HF return current, and the boards should have a ground plane.
Can the arduino output actually drive the clock line?...
WS2812B need 5V signal, you need a 74HCT logic gate for voltage translation between the Pi and WS2812B.
Please don't put the fuse in the negative connection of the power supply...
Resistors in the lines between the Pi and the L298 will save your Pi when the L298 melts and shorts the inputs to +12V.
U4 needs an output cap.