I figured it out -- I think. At least they're validating now.
I'm working in a Windows virtual machine, and the text editor was producing CP1252 encoding. I had to find a utility (iconv for Windows) to convert all the files after they were created, but before they were zipped into an ePub.
There were also issues with capitalization. Also found and fixed.
Yup, the <dc:identifier> was inside a <metadata> block.
I spent most of the day on this, but now I've got a script that parses the xhtml, and produces a nicely formatted ePub, including TOC. The only thing left to do is program it to split the files at chapter-breaks. (Not req'd by the spec, but apparently it's necessary for current hardware limitations.)
Thanks for helping,