i would sggest you to change your PIC and use a flash version that have a PWM module in like 16F88, 16F628 and how many other Usually i use PIC16C711 on my pin board.

BUT it's not impossible. Depending of your programming skill you could use internal timer interrupt to produce you PWM. A bit tricky but not impossible. i still prefer the use of internal PWM... make everything soooooooooo simple and keep my few last hairs on my head.

Yes a 25 mA PIC i/o can drive a MOSFET. But for safety sake and for high current driving, i would prefer to use opto-isolator between the PIC and the MOSFET.

some cheap opto-isolator PS-2501-1

some MOSFET that spring to mind now IRFZ44N, IRFZ48R, HUF75339P3.