It's working now.

So yes, the display can be directly connected to the PIC. I've inserted a 1k resistor to limit the current and it's fine.

It works at 300Bds without crystal.

At 1200Bd, it's getting fuzzy: sometimes I get correct characters on the screen, and sometimes the display is meesed-up.

At 2400Bd, it won't work anymore.

I can't understand why the same circuit will work perfectly at 9600Bd on the PC's terminal?