How do I use interrupt service routines inside libraries and classes?
Nick Gammon's answer is good for one Timer - but now you want two!

OK, then you can take advantage of the Timer Library's context parameter. What's that? If you take a look at the header for every(), you'll see as well as passing in the function to call, you can also pass in another value (called context) to pass back to that function when it fires*. So instead of you remembering just one copy of instance, get each Timer to remember it for you.


  *If you can't see the context parameter in Timer.h, then make sure you're using the v2.1 branch, not master.


So:


Get rid of _instance everywhere.
Change:
static void _callbackGlue();
to
static void _callbackGlue(void *context);  
Change:
void Blink::_callbackGlue()
{
_instance-&gt;_callback();
}
to
void Blink::_callbackGlue(void *context)
{
((Blink *)context)-&gt;_callback();
}
Change:
_blink_event = _blink_timer-&gt;every(_duration, _callbackGlue);
to
_blink_event = _blink_timer-&gt;every(_duration, _callbackGlue, this);


Note that I've submitted these changes as a Pull Request on your GitHub repo.



Incidentally:

You don't need _blink_timer to be a pointer. Get rid of the *, get rid of the line with new Timer() in it, and replace all your _blink_timer-&gt; with _blink_timer.