Нужно подключить другой линкеровский скрипт (18f2550i.lkr) вместо rm18f4550.lkr
Учтите также что пример рассчитан на использование USB Bootloader. Как работать без него смотрите в important.readme.txt в каталоге \MCHPFSUSB\fw\
Можно оставить.
Эти тексты писались под версию компилятора 2.30.01. В следующих версиях контроль преобразований типов стал построже IMHO.
Если раздражает, то можно usbdsc.c поправить так:
rom const unsigned char *rom USB_CD_Ptr[]={(rom char*)&cfg01, (rom char*)&cfg01};
rom const unsigned char *rom USB_SD_Ptr[]={(rom char*)&sd000, (rom char*)&sd001, (rom char*)&sd002};