16-bit pointers can work a couple ways. They can be relative, which can be a pain in the ass. Relative is relative to their current position. So say you have some pointers at 00/5400. The first pointer reads 0000, where it's pointing would be the first set of whatever after the pointers.
Then there's absolute. With absolute, you just look at the address, and go there in that bank. Easy as pie.
24-bit is similar, it just has the bank tagged on with it. To convert to 24-bit, you'd need to be handy at rewriting pointer grabbing routines.