Чтобы расширить приведенные выше ответы, нужно разбить строку кода:
vector< MyObject<MyType> > ObjectList(100, MyObject<MyType>(param1))
на две составляющие:
MyObject<MyType> myObject(param1)
vector< MyObject<MyType> > ObjectList(100, myObject)
Как вы можете видеть, вы создаете myObject один раз, а затем вызываете его конструктор копирования 100 раз (вместо создания 100x MyObjects).
Судя по тому, что вы ожидаете, вы не создали собственный конструктор копирования - поэтому вы получаете (как уже упоминали другие) стандартное поведение "мелкой копии" по умолчанию.
Я бы также рекомендовал не использовать голые указатели / выделение кучи (например, MyType * t = new MyType [param1]) new внутри MyObject, скорее реализуйте хранилище с другим вектором, который уже поддерживает механизмы копирования, которые вы, вероятноожидать.