Hi,
I just scanned at your LCD's data sheet & noticed a couple of things you may want to check since I think it's very unlikely your new lcd's controller is faulty.
-
There is an initialization step on page 6 where the number or rows & cols are set. So have you done this properly in your in lcd.begin() - refer to http://arduino.cc/en/Reference/LiquidCrystalBegin
-
The set CG ram address & set DD ram address commands on page 5 of your controller's data sheet seem to need 6 data bits. This possibly means that you may need to use the 8 data lines mode to be able to access your whole display. Try connecting with 8 data lines from arduino to the LCD as explained in the reference LiquidCrystal - Arduino Reference
Regards
Srinath