To start with, you probably get some compiler errors, if so you should have added them to the question as right now we can only guess.
Secondly, I'm guessing that it's because of your template parameter:
Foobar bla( v );
// ^^^^^^^^^
Here you tell the compiler that the template parameter is a pointer, but then you have the constructor:
Foobar( TContainer & container )
// ^^^^^^^^
In the constructor you declare container to be a TContainer with TObject* members, but since TObject already is a pointer you now have a pointer-to-pointer. If TObject equals IUnknown* then TObject* equals IUnknown**. You have the same problem when declaring the container_ member variable.
I recommend you drop the pointer-type when declaring bla:
Foobar bla( v );
// ^^^^^^^^