Using PinChangeInt in multiple libraries

The problem with pin change interrupts is that, on the Atmega328 at least, you get three interrupts (three ISRs).

Some information here:

Now you just can't, for example, have four libraries that each try to implement those ISRs. In fact any library that uses pin change interrupts may "take over" all of them, or at least one of them. In other words, the same ISR can't be implemented more than once.

Maybe a better solution would present itself if you didn't try to describe the low level problem (trying to manage lots of pin change interrupts) but the higher level problem (what you are actually trying to achieve).