Black square could also mean that the LCD initialization haven't been done properly. Now why... maybe because the LVP mode is still enable, hence RB5 can't be used as a standard I/O. Make sure you disable it in your config fuses.

The deprecated stuff is just a warning. you can disable it

@ ERRORLEVEL -230

in your code or modify the 18F452.inc file in your PBP folder.
Code:
        NOLIST
    ifdef PM_USED
        LIST
        "Error: PM does not support this device.  Use MPASM."
        NOLIST
    else
        LIST
        LIST p = 18F452, r = dec, w = -311, w = -230, f = inhx32
        INCLUDE "P18F452.INC"   ; MPASM  Header
        __CONFIG    _CONFIG1H, _OSCS_OFF_1H & _XT_OSC_1H
        __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
        __CONFIG    _CONFIG4L, _LVP_OFF_4L
        NOLIST
    endif
        LIST
EEPROM_START	EQU	0F00000h
BLOCK_SIZE	EQU	8
This have been corrected in V2.47.