MOSFET for PWM control on a solenoid
It looks like there may be some issues with your schematic. There are no labels, so this is just a guess but it looks like your mosfets are on the high side. You're going to want to use N channel fets, they're better. Google "low side mosfet switch". Second of all, those diode are backwards. They should not not conduct when the solenoid is powered. Third, please consider using a regular schematic in the future, it's much more readable.

Now getting into the problem itself..

It will be difficult to create pwm signals of sufficient frequency while using a shift register for the output. You have enough pins to drive the outputs directly though so I would just do that.

Any mosfet can "handle" pwm. But driving them on and off can be a bit tricky. If you pick the mosfet carefully, and your PWM frequency is somewhat low (&lt;1khz), you may be able to drive the mosfet gates directly using the arduino. The mosfet gate is basically a capacitor, and it takes time for your arduino to charge it up. If the pwm frequency is too high the mosfet will linger in the intermediate zone and overheat.

A not-cheap but very solid solution to this is to use a chip called a "gate driver".  These are simple to use and can push/pull multiple amps into the mosfet gate to turn it on and off extremely fast. I often use the IXDN614PI.

If you want to drive the mosfets directly with the arduino, you will need to find a "logic level" mosfet. This is surprisingly difficult to do. Mosfets will list a Vgs(th), which is the turn on threshold, but you need to go higher than this for the mosfet to conduct efficiently. For example a mosfet with a Vgs(th) of 5v will not work well with a 5v signal. You'll need more like 2 volts. For each mosfet, you will have to look in the datasheet to figure out if it will work (goodby parametric search). If you're lucky the resistance (Rds(on)), will be listed for 5V, but more likely you will have to look it up in a chart. Like this:



Chart taken from the datasheet for the PSMN017-30PL,127

One last thing, you should always add a high value resistor 50~100k pulling the mosfet gates down. This will make sure the mosfets stay off unless you intentionally turn them on.