You need to initialize the LCD, set it to 4bit mode, and a few other things before it will work.
A line of blocks on the first line indicates it hasn't been configured properly (and is probably still expecting 8bit commands). I suggest you read through a datasheet for the LCD properly and have a look at some example code written for PICs. Microchip actually have an LCD routine as part of their application library.
There is a command, where the unused four bits are all 0's, which allows you to set 4bit mode (thus you can connect the unused ones to ground and are read as 0 for that one "use 4 bit mode" command). So essentially you can send that one 8bit command at the start.