This may or may not make a difference, but a lot of times if something isn't working right at all and I think it should, try the "clean" option. (I think that's what MPLAB calls it. If it isn't, you're looking for the build option which removes all its previous files. Alternatively, you can delete the all the compiler generated files on your own.)
Sometimes the compiler just gets confused or (more often, at least for me) you somehow manage to hit the compile button, then the save button, and the compiler gets an old version of the file, but marks the compile date on the .o as being the new file, so even a plain "build all" just results in the old file being used...
So, try hitting "clean." It doesn't cost anything, at the least.
