My general opinion: if you have a choice, as is often the case, between the following three options:

 - Type out many nontrivial code structures repetitively by hand;
 - Use C++ template metaprogramming to automate code generation;
 - Use some other code generation mechanism, such as macros or some other programming language to generate C++ source files

then template metaprogramming, done properly, will likely be the most readable and maintainable of the three options. This is the argument that I would make to the team, if I were in your position. Examples with actual code would help convince them.

When you use Template Meta-Programming(*TMP*) to avoid repetition, you should use it to construct well-documented, carefully tested abstractions that localize the complexity within the TMP code, making it easy to write correct client code. This is the design of the C++ standard library.

I do not think that we can judge who is right or wrong without seeing an example of the type of code you're trying to write.