If you want to do this a byte at a time (or even a few bytes) then you need to enable hardware handshaking on the PC side of things and have the pic assert an RTS output after each byte.

Or, use a terminal emulator that can add delays between bytes and cross your fingers.

Either way, there's no real way to know when the transfer ends other that adding some timeout (and crossing your fingers).
If you're actually sending a text file then you could always add something to the end of the file.