What is the difference between the different types of PIC compilers?
xc8 Microchip compiler for 8 Bit devices (also AVR devices)

xc16: Microchip compiler for 16 Bit devices

xc32: Microchip compiler for 32 Bit devices (and also the ARM SAM devices)

HiTech: previous compiler from xc8, company now bought by microchip

CCS:  3rd party compiler
In a short test a read about CCS is 21% slower, takes up 4% more ROM and 38% more RAM than the free XC8 compiler!

From every xc compilers are two versions available (one free). 
There is also a dongle license available which can be used interchangeably among workstations and users.