Multiple pulsed inputs one ISR or many for that matter!

That standard approach with pin change interrupts is to read the port in question (each pin change
interrupt listens to selected pins on one port), and compare to the last time it was read - any changed
bits for pins you are interested in are noted and relevant counter(s) updated, then you record the
latest port value for next time.

So something like:

#define PORT_B_MASK 0b00110011  // mask for the pins you are interested in, here 8,9,12,13

void setup ()
{
  PCICR = 0b001 ; // enable PCINT0 only
  PCMSK0 = PORT_B_MASK ;  // for only the pins we are interested in
}

volatile byte last_port_b;
volatile int counter_A = 0;
volatile int counter_B = 0;

// PinChangeINT0 covers port B, 1 and 2 cover ports C and D...
ISR (PCINT0_vect)
{
  byte this_port_b = PINB ;
  byte diffs = (this_port_b ^ last_port_b) & PORT_B_MASK ;
  last_port_b = this_port_b ;
  if (diffs & 1)
    counter_A ++ ;
  if (diffs & 2)
    counter_B ++ ;
  ... etc