The addresses for the registers are correct, but when writing to the associated pins (CxON, CxCHx, etc) the bits don't end up actually going into the correct places in the SFRs. You can verify this by compiling the program with:
"sdcc -mpic14 -p16f785 example.c"
...and then simulating it in MPLAB or running the code on real hardware (to find that the comparator doesn't work).
This is using sdcc 2.6.0 #4309
There are no error messages, my email address is included (I am logged on). I'm happy to test modified header files on real hardware.