You asked for troubles when you switched to a WAP; now you're getting them... ;-)
doesn't VS2008 know where the page is in the structure
It knows it exactly; that's why it adds About in the structure..... ;-)
All kidding aside, look in the .cs file in the template's ZIP file. I am pretty sure you'll see something like this:
public partial class $safeitemname$ : $rootnamespace$.BasePage
Simply remove $rootnamespace$ and replace it with the hardcoded namespace for the BasePage class. Then store the .cs file in the ZIP again and it should work.
Rather than using the namespace in front of the class name you also consider a using statement:
public partial class $safeitemname$ : BasePage