Well, I worked out the problem, but I dont know why it is a problem, I have two boot loaders, one is a two stage loader (this causes an error), the other one is a single stage loader (this one works), when I boot with the 2 stage loader I do not get exceptions or anything like that, the variables will just not increment (GDTs are identical in both), but when I use the single stage loader everything runs perfect.
From what I learned in class, and on my own, if you icrement a pointer *foo++; you are actually changing the memory address it is pointing to by the bit value of the primitive on which the pointer is based. So, a char pointer should increment 8-bits.