5 volts / 100 ohm= 50ma. Max Io=25ma. What about if you change your resistor to lets say 200-300 ohms? Case you can't change the resistor value, you can insert a buffer between PIC and MOSFET and see if there's any difference.

Can also be caused by a sorta ground loop.

BTW, if you remove all the sourounded stuff (MOSFET, MOTOR,SOLENOID) and monitor your output of the PIC with a scope, do you have great results ?

Can you post your whole code?