Here's the definition of attachInterrupt: void attachInterrupt(uint8_t, void (*)(void), int mode);
No, you can't do it this way, because attach interrupt expects a pointer to a function with no parameter and no return value. In your example. you passed the return value the function call CounterHandler(0), which most likely isn't a function pointer.
What you can do is write bunch of stubs which call your function in turn with the proper parameter. In many languages that can be done with dynamic or lambda functions, but to my knowledge not in C.