Good questions. We are trying to beef up the documentation in this area for v12, but I haven't got more than an outline complete at this point. So, I'll have to wing it to get you going.
Workspaces contain projects. You can have a workspace without any projects, but it would not build nor have any build-related settings. A project may belong to any number of workspaces. You can add an existing project to a workspace by selecting Project > Workspace Proprieties, then click the Add button.
Projects represent a grouping of files. In general, you should create a separate project for each build target in your system. So, if you have a program that is comprised of a number of DLLs and and EXE, you would create a project for each DLL and one for the EXE. In Java, I typically only create one project. This is particularly useful if you are using the SlickEdit build system. Even if you're not, it will allow you to group your files in a way that reflects the logical organization of your program, or you may elect to just add all of the files to a single project. You can specify project dependencies (also from Project > Workspace Proprieties). This will cause SlickEdit to build project B before building project A, if A depends on B.
You might also create a project to represent a set of files that comprise a library. You can then import that project into any number of workspaces. If you never edit the code, you can tag it without adding it to a workspace. To do so, select Tools > Tag Files to bring up the Tag Files dialog. This is divided into 2 panes. The left pane is a tree of your tag files. The right pane lists the source files in the selected tag file. To tag a library, add a new tag file. It's important to add the file to the correct location, though. If the tag file is needed only for this workspace, add it to the Workspace Tag File folder. If it is to be used by any workspace using this language, like C, then add it to the corresponding language folder. Assuming you are tagging a C or C++ library, you would select '"C" Compiler Configuration Tag Files", then click the "Add Tag File" button. Then select the correct source type to be tagged. Yes, it would be nice if the dialog knew that we just specified that we were adding a C/C++ tag file, but it doesn't. Be sure to check Generate References to create symbol cross references--that should probably be on by default.
Now it gets tricky. You are presented with a dialog that looks like you should choose a tag file. Instead, type the name of the new tag file into the "File name" field, like "GreatScott.vtg". Give it a name that is representative of the library being tagged. If you're tagging the Boost libraries, you might call this "boost.vtg". Then click the Open button. Now you should see the "Add Tree" dialog. Browse to the root of the library and specify the appropriate file types. SlickEdit will add all of the files matching the specified extensions.
In your specific case, I would create projects for the foundation/framework layer (one or more depending on the number of build targets, etc.) and a separate workspace for each application. SlickEdit is quick about switching workspaces, so there's not much benefit to putting all of your applications into a single workspace.
I'll have to talk to one of the developers about the include issue. Though the GUI doesn't provide a method for copying include information, our project files are just XML. So you can copy the include information from one project to another by opening the .vpj file and copying the information in the Includes node.
I hope this helps. I'll see what I can find out about the includes. Please let me know if you have more questions.
--Scott