The problem was that repeated uses of the shelve command failed.
This was happening because the first invocation would leave all of
the files in the working directory. Subsequent invocations would
make TFS try to store files there, fail, and think that it didn't
have local copies of anything, so it wouldn't check the files out.
The problem was fixed by telling TFS that it really should get the
latest source files.
I also updated the readme and some other things to indicate that
the shelve command works now.