Finally when I went to add a new file to source control I discovered that the difference between the files that worked and the files that didn't was their location. Files in the same directory (or underneath the same directory) as the vcproj were recognized; files outside weren't. When I attempted to add a file outside the directory I actually got a meaningful error: "Some of the files you are adding to your project are located outside of the project's binding root. These files cannot be source controlled unless they are moved."
Aha.. I opened up the vcproj in notepad and whaddyaknow, there's an entry called "SccLocalPath". I changed that from "." to ".." and it all magically started working. It would have been nice to have gotten that error when I bound the project originally. Go Visual Studio... :-/