I've been trying to come up with a patch but work has been getting crazy and I have been ill for days now.
A detailed description of the problem (and apossible solution) is to be found here:
In a nutshell, if a user references a Tapestry page whose class must be found from a given list of packages it may be the case that way they have referenced (by name) may mislead the ComponentClassProvider to look in the wrong package. If that happens, the class is not found and (in most cases) BasePage is assigned as the page class. Often this will break the application if the page depends on a class other than BasePage. Depending on how the app is set up there could be 3 or more legal ways to reference a page by name (path parts) but only one way will result in the right page class being located.