I've looked a bit further and I think the problem is most likely the table reads. Search for AN556 on the Microchip site which explains it better than I can. It's only a problem for the tables after 0xFF so it's probably possible to move the tables further up the code and avoid the problem that way.