I'm not entirely sure what going on there but one possibility is if your host doesn't let your db user be int the dbo (database owner) server role for your db. At most hosting places your db user will be owner of your database and the prefix [dbo]. is used in all the scripts when creating the db objects. So it seems like your db user was able to create the objects but then can't execture because it (the user) is apparently not dbo of the db.
I only know of one other person who has told me they encountered this issue at their host, and we added something to web.config that was able to solve it for that person. Yuo will see this setting in Web.config:
<add key="MSSQLOwnerPrefix" value="[dbo]." />
When scripts are executed, it will replace [dbo]. in the scripts with whatever is in this Web.config setting. I'm not sure if the other person was able to solve it by just changing it to empty string like this:
<add key="MSSQLOwnerPrefix" value="" />
or whether he put something else there like [yourdbusername]., but that is what I would try next is making it empty string. If possible I would try to delete all the existing tables and stored procs first (as apparently they were created and are owned by dbo), then make this change and try setup again. If empty string doesn't solve it I would delete everything again and try with your db user name
<add key="MSSQLOwnerPrefix" value="[yourdbusername]." />
Hope it helps,