I find it's usually It's usually variable or function names that are built in to the compiler, rather than being defined in an include file that MPLab can parse so it recognises them.
That's down to the way a specific compiler works, rather than a fault in MPLab.
Every variable should ideally be visible / defined for the editor, else it cannot know it's not an error or omission.
Sometimes it also seems to come from nested includes that have not been fully parsed - but those usually vanish after the first compile.
I routinely use the "production - Clean and build" menu option as a quick checker for any syntax or compile problems, then only use the debug or programming functions after verifying everything compiles correctly.