Well this is a bit embarrassing, but I think I resolved it.
I am the careful sort, so I have a tendency to Parse the SQL statement before I run it live. This collection of statements would not parse successfully because the Parse was seeing that the Compatibility Level was not set to 100. It was ignoring the fact that I was actually setting it earlier in the script, but that's understandable as it is only Parsing and not running it for real.
When I decided to "buck the tiger's odds" and run the collection of scripts live on a database, it ran just fine. It set the Compat Level to 100, created the procedures, and then set the Compat Level back to 80.
So it will work after all. It just won't Parse.
Thanks for listening, and I am sorry if I wasted your time.