Not that REALLY HARD... but way more tricky. At very least, one of the tricky point is that your PIC MUST talk, acknowledge the PC command... which can comes from the Boot and 'till the Shut-down. If you don't do that, your project may never work, the PC may freeze/Crash... and then, this is where the fun begin!

High likely, you need interrupts, ASM are more than welcome while Darrel's instant may work as well but maybe will need a slighly higher frequency crystal. Those i've done 'till now, use the internal 4MHz osc and ASM ints. Seems to works fault-free 'till now.

This is a bi-directional port, so you should play with TRIS register instead of simply send a pin high/low... that's the easy part. Forget Shiftout for reliability and timing.

A logic analyzer + a home-brew PS2 sniffer & Logger are highly recommended.

There's a load of information/tips about the PS2 protocol on this forum... but no real complete solution.