NHD-0216HZ-FSW-FBW-33V3C Black Boxes in Line LCD Display
First of all: While the datasheet doesn't say it explicitly, the display you're working with is fully compatible with the Hitachi HD44780 display standard. (It's even using the same pinout as most HD44780 boards.)

Anyways. The behavior you're describing is typical of an HD44780 display that hasn't been initialized properly. In your case, this is because you're not sending the low halves of the "wake up" commands! These commands are like all the others; if you're using the 4-bit interface, you have to send the high half followed by the low half. My sample code sends 20, 20, 20, 28 (or, that is, 2, 0, 2, 0, 2, 8) to force the display into 4-bit mode; I'd recommend you do the same in your code, instead of putting the display temporarily into 8-bit mode with 30.

Additionally, I'd strongly recommend that you write a single routine to send the two nibbles of a byte to the display, rather than creating a bunch of separate hard-coded routines like the Command28 you have here. Your code will become a lot simpler once you've done this.