Can you spot the difference between these two images? Hint: one of them compiles, the other doesn't.
The answer is that one is altering the Header Search Paths for the build target, the other is altering the Header Search Paths for the project. Adding paths to the project, as far as I can tell, does not allow files in the project to include the files so added. Adding them to the build target does. Only once I added to the build target did it stop throwing errors like "No such file or directory: libmxml/tree.h" I found a few StackOverflow questions related to my issue (here and here), but they didn't make this important distinction that only adding headers to a build target would solve the problem. Nor did the documentation for the framework I was trying to add to my project. You would think adding to the project's search paths would add it to all targets, but I guess not.
Anyway, now my Hoptoad Notifier works, but you could easily have the same problem with Three20 or anything else that requires libXML2. Good luck!