Hm, so far I don't see any error... Can I see the class definition with the members?
If you don't allocate dynamic memory, do rather not implement The Big Three on your own. As said, the compiler-generated ones should be enough. Your problem is probably somewhere else. Have you ever used a debugger? With a debugger, you can track the code, watch variables and place breakpoints. Like this, you are able to observe the copy and compare the variables of the origin and the newly created instance.
A further tip: To initialize variables in a constructor (also copy constructor), use the initializer list:
MyClass::MyClass(int arg1, double arg2, bool arg3) : member1(arg1), member2(arg2), member3(arg3)
{
// in the constructor body, the listed members are already initialized
}