The problem with using the VS Publish feature is it does leave out a lot of files because it only deploys files if they belong to the project. In mojoPortal, a lot of our features are in separate projects and they get copied up to the web project folder by post build events. Since these files are not part of mojoPortal.Web project they do not get deployed by the publish feature.
Thats why I recommend you use the free UnLeashIt tool to make your package based on file extensions not project membership. You point it at the Web folder and it packages only the needed files without C# source code into a new target folder.
See the documentation: http://www.mojoportal.com/deploymentfromwindows.aspx