Hi,
There are a few more differences:
In PIC 18, you need not bother about bank switching, whereas in PIC 16, this is a real headache if you use assembly language and there is no way around it - it must be used.
PIC 18 has 8-bit data bus (same as PIC 16) but has 16-bit wide instructions, where as in PIC 16 it is 14-bit. So each instruction in PIC 18 is 2 bytes wide.
PIC 18 has hardware multiplier, PIC 16 does not.
PIC 18 has PLL option to multiply clock speed by 4, PIC 16 does not. In PIC 18, therefore, you can have a 10MHz crystal, use PLL to have a 40MHz clock and operate at 10MIPS, whereas in PIC 16, it will be 2.5MIPS for 10MHz crystal.
In PIC 16, maximum frequency for ECCP is limited to 20kHz. PIC 18 does not have this limitation.
Hope this helps.
Tahmid.