Fingerprint Reader on Pic32mx
your line:
 CNEN = 0x00000010; // Enable individual CN pin CN4

should be:
 CNEN = 0x00010000; // Enable individual CN pin CN4

and similar for CNPUE

You also need to implement timing in your software as per @brhans comments

Using delays in your interrupt routine is not be good practice - the CPU will not be able to do any other processing - including responding to other interrupts, in the time it takes to read each character, much better to start a timer and sample the port bit on that timers interrupt.