Lindsay,
When I get an error that I can't find, I open the xhtml file with Google Chrome. It will stop on the line with the error and display which line it is on. It also reports the column but I don't find that to be useful; it's misleading in most cases.
I recognize your code as being created by Smashwords. You might find this post on my site to be interesting.
Why Doesn't Smashwords Accept EPUB Files?