How can I drive 88 solenoids with an Arduino with PWM?
Forget craziness - good for you, investigating and experimenting is a great way to learn.

The NXP PCA9685 module you've identified will drive FETs, as you describe. Put a 1 K series resistor between each PCA9685 output and its FET gate. This limits the current to/from the gate capacitance during PWM output switching to 5 mA max, otherwise the PWM output is driving into a short-circuit on its rising edge.

I would also allow for, or put in, a 10 K pull-down to GND on each PWM output. The PCA9685 data sheet states that the outputs will go low during reset of the IC. On power-up, you don't want dozens of solenoids clicking because its not immediate enough or something else unforeseen. This is purely a precaution, allowing you to put a pull-down on the PCA9685 /OE pin and have the Arduino drive it logic high once the supply has stabilised and the circuit settled. Shouldn't be needed but better to plan it in and not fit the parts in your experimental lash-up.