As far as Character LCDs usually go, they treat the display as an 80x1 or a 40x2 display regardless of the number of characters on the LCD itself.
You should find that since your display is a 2-Line unit the 2nd line will start at memory address 40 (0x28 in hex) so you need to write your 2nd line starting there.
When I set it to start at 0x28 it still goes on the first line. It will wrap around but not perfectly as it takes a few second for the message to get to the bottom.
I think the trick is in this initializing code
LcdCommandWrite(0x2C); // function set:
// 4-bit interface, 1 display lines, 5x7 font
I don’t know how I would change it to 1 line though.