LCD rows not all lighting up
Some four-row LCDs are actually two controllers with separate enable inputs. 

Try writing to all the locations in the data RAM, the memory-address to character-location in these LCDs is not always what you think it is.   For example I have a weird 16x1 display that is actually laid out as two disjoint 8-column memory ranges.