Bom, estou usando o MPLABx desde 2013, quando a IDE mudou a interface (MPLAB -> MPLABX), e por consequência o compilador C18 migrou para XC8, nas primeiras versões o compilador ainda trazia as bibliotecas montadas no C18 (Peripheral Libraries - plib) como delays ...
A partir do XC8 versão 1.35 ele passou a não trazer mais as bibliotecas plib.
Os códigos que "flutuam" na WEB são 99% voltados para o C18, até os livros publicados no Brasil ainda falam do C18
Como comentou Moley acima, no próprio xc.h tem funções nativas de tempo e macros.
No meu blog que uso para aulas sobre 18F4550 eu explico o uso das funções de tempo com a biblioteca xc.h http://pilger-pic.blogspot.com.br/2016/11/funcoes-de-tempo.html
http://pilger-pic.blogspot.com.br/2016/08/atividade-temporizacao.html
O único cuidado é que as macros __delayus e __delayms, não aceitam parâmetros elevados como por exemplo __delayms(1000) (para gerar 1s).
Li uma explicação que seria que o compilador "tenta evitar" um loop por parâmetro elevado. ??? (não sei se seria isso)
Uma possibilidade é que o parâmetro da macro seja um byte onde o valor máximo seria 255 (não testei)
O que tenho feito é uma função que encapsula a macro e resolve o problema
Para quem quer usar as bibliotecas plib:
Como alternativa para quem quer usar as bibliotecas antigas é instalar o "Legacy Peripheral Libraries 2.0" você encontra o arquivo na área de downloads do compilador XC (mais abaixo na lista) instalando esse pacote ele adiciona a pasta "plib" na pasta include do XC.