I'm not sure what I2C has to do with the issue you raise in your original question. It is not one of the types listed for RB3 in Table 1-2 of the data sheet you link to.
Also, given the wave form you have shown, you are talking about perhaps 100uSec between a low threshold and a much higher one. Does that *really* make a difference in your design given that the pulse is at least 3 times longer than that?
Bit-banging, especially on receive, is very sensitive to timing in that you (generally need to sample multiple times within the 'bit width' to make sure that you have correctly sampled the '0' or '1'. If a pulse is 400uSec (as in your diagram) that means you should be sampling (at least) every 50uSec and working out the correct state at the middle of the bit time. (Can you afford the processor time for that given a maximum 8MHz instruction clock?)
Given the bit-level protocol that you have mentioned, I would imagine that the 'enormous' code libraries that you mention are more to do with interpreting the message than the bit-level encoding/decoding.
Susan