It's due to template inheritance. In such case you should mannualy specify using for base methods:
template
MyDerived::doSomething() {
using MyBase::addStuff;
T* thingy = new T();
addStuff(thingy);
}
or do it by this pointer:
template
MyDerived::doSomething() {
T* thingy = new T();
this->addStuff(thingy);
}