You are assigning the pointer. You need to assign the content:
*pObject2 = Object1;
pObject2 is a pointer. If you assign it you are making it to point to Object1, forgetting the pointer to the dynamically created instance in the process.
Instead you need to assign the instance, *pObject2. That will invoke ClassName<T>::operator=, which is either autogenerated to assign all members, or hopefully manually written to do whatever else is the right thing for the type.
Edit: Of course, as Guido Kanschat realized in the other question, while this is what was wrong with your attempt, you should really use the copy constructor directly. Why initialize the second object with arbitrary junk when you are going to reinitialize it with object1 anyway.