I think we're confusing class and object here. When you instantiate an object with...
$class = new Class();
...then $class is an object instantiated from the class named "Class". You can unset() the object, but to the best of my knowledge you cannot "unset" the class definition itself (just as you cannot unset a user-defined function).
The best solution I can suggest (pending a deeper understanding of what you are trying to accomplish) is to keep your class definitions in include files which are separate from any procedural includes (those that actually instantiate objects from those classes). Then any time you include a file which is a class definition, use require_once or include_once so as to avoid an attempt to redefine an already defined class.