We have all been there, though Microchips datasheets are infamous !
Don't forget , code in the ISR should be as short a possible so you do not miss other interrupts etc, plus avoid calls and gotos out of the ISR area.
Rather than test and do complex work on the result in the ISR, do the test , then set a variable/FLAG according to the test result so it can be acted upon in the main code loop.
The earlier 16F chips biggest problems are the small ram banks and program memory pages, some of the newer 16F and all the 18F chips like the 18F1320 have one large program memory area and large ram banks (256 bytes) so a lot easier to use with Assembly code.
Which chip, just depends on what programmer you have, some of the newer ones need the Pk3.