It would be good to know how your solenoids actually work. From my time playing with model trains, the points were controlled by two coils pulling at the same metal slug (each in one direction) and that was moving the points. All controlled by momentarily connecting one solenoid to 16V DC (not AC) and with no capacitors. In fact, adding a capacitor tended to destroy the mechanism because the very thin magnet wire of the solenoids has melted. So there were 3 wires coming out of it - one common and one for each of the coils. I guess your system is different.
If you want to control something like that with a MOSFET, you need to know how much current the solenoid actually takes when energized - that you use to dimension the MOSFET.
The other part you need is that the MOSFET has to be a logic level one, which is able to conduct full current even with a low voltage on the gate. Normal, non-logic level FETs need like 8-10V on the gate to turn on, so that wouldn't work if you tried to control it from a microcontroller directly, without a driver.
Re high side switch - sure, you can use a P-FET too, that will work. If you wanted to use an N-FET for the high side switch as well, there are tricks such as bootstrapping or using a gate driver with a built-in charge pump to elevate the gate voltage. However, I think that would be needlessly complicated for your use case.
Finally, unless you need really high currents I would also consider using ready-made ICs - there are plenty of ICs on the market that have half-bridge or a full H-bridge transistor configuration inside (even several), including any required drivers, protection and control logic. That will likely be cheaper than trying to do it with discrete components and certainly smaller.