The problem is your wildcard specification (*, recursive) which is too general, since it includes also all the files under your "Debug" directory, including the ".vpb" file. Since the ".o" files were also included in your project, that explains why you were getting linkage errors about multiply defined symbols, because the .o was linked in twice.
Try creating two separate wildcards (*.h, recursive) and (*.cpp, recursive). This way your project only includes source files, not anything and everything that happens to be in the directory tree.
The alternate approach is to use the wildcard excludes to exclude the problem files. For example, if you change your wildcard exclude spec to the following (note, no spaces):
*.vtg;*.vpj;*.vpw*;*.vpb;*.exe;*.o
Then the ".vpb" file, the ".o" files, and the executable will be excluded from the project and you will be able to build and rebuild without problems.
Generally, I tend to prefer the "everything that belongs" technique over the "everything except this junk" technique. It's like ordering lunch -- it's much safer to tell the waitress what you want to order than to give her a list of things you do not want and then see what you get.