I'm not sure why we are focused on the other errors - the database fails to get dropped (or created), so future errors are to be expected.
pg_restore should be run with the --exit-on-error flag, and handle the errors one by one as someone mentioned upthread.
I would use the --section=pre-data --section=data and --section=post-data flags to pg_dump to create (for the pre-data) a small and editable file so you can tweak the CREATE DATABASE as you please.
pg_dump mydb --clean --create --section=pre-data --file=mydb.pre.pg
Cheers,
Greg