Running a stored proc with execute as
If you put dbo, it will look at the dbowner of the database, in your case (I guess) 'MyCompany\A.Smith'

Be sure the user you want to use in the execute as clause is part of sys.database_principals or sys.server_principals.

If not, you can fix this issue changing the owner of the database you use.

First, check the current owner :

select suser_sname(owner_sid) 
from sys.databases 
where name = 'MyDatabase'


If it's 'MyCompany\A.Smith' your procedure will not run.

So, change the owner, for instance :

sp_changedbowner 'sa'


And it will work.