My comment might not be a reason it does not work for you, but every QObject derived class require Q_OBJECT macro at least if you have any signal/slot defined in it.
I never tried to write template with such macro and believe it is not supported and will be not handled properly by mocing.
It might be possible manually create required code instead, but I doubt this solution will be portable.
In other words my impression is templates are no-no with QObject derived classes.