Upgrading Tomcat 5.5 to 6 is no big deal. Basically you just need to reconfigure the stuff in /conf as it was.
One important detail is that Tomcat 6 has all the default libraries in one /lib folder while Tomcat 5.x has them spread over /lib, /shared and /common and its subfolders. Verify if there aren't extra non-appserver-specific JAR files dropped which might need to be copied to Tomcat 6. Often those are only be the JDBC drivers and other JAR's which are required by the container managed datasources and other resources. Further on, Tomcat 6's /conf/catalina.properties also has new properties shared.loader and common.loader wherein you can specify those kind of paths yourself. Useful to externalize webapp properties files, xslt files, i18n files and so on.
Migrating webapplications to another server is another story. The biggest problems would arise in the classpath. It may happen that the developer has somehow dropped some appserver-specific JAR files in the /WEB-INF/lib. That would cause "unexplainable" ClassNotFoundException or NoClassDefFoundError problems whenever the webapp is deployed on an appserver of a different make/version. But if the webapp is all "clean", then I don't forsee real problems.
I am having the problem you describe, the "unexplainable" ClassNotFoundException. My /WEB-INF/lib consists of orai18n.jar, saxon9.jar, and my own tox.jar. Honestly can't remember why orai18n is there. Perhaps this is a starting point. Also, what do you mean by a "clean" webapp?
First, what's the name of the missing class? If it is one of the Java EE classes which ought to be default supplied by the appserver, then it means that the WEB-INF/lib is dirty (see 3rd paragraph). If it concerns another class which is not by default supplied by the appserver then verify if there aren't any JAR's in Tomcat 5.5's library paths which should be copied to Tomcat 6 (see 2nd paragraph).
It is the former... the logging mechanism which should be part of tomcat is being reported as missing. But I'm still not clear as to what you mean by "dirty". I've only three jars in my app's WEB-INF/lib. My jar is "clean". I certainly trust the saxon9.jar. Perhaps the oracle orai18n.jar is the issue?
With "dirty" I mean that the WEB-INF/lib contains appserver-specific JAR's which doesn't belong in there. This is likely not the root cause of your problem. Can you please post the entire exception and the stacktrace? Edit it in your topicstart if it gets long.