Cuando se ejecuta un procedimiento almacenado, se ejecuta como el contexto de seguridad del usuario que creó el procedimiento almacenado, no del usuario que lo está ejecutando. Se considera una función de seguridad.
Puede ser que la cuenta utilizada para crear el procedimiento almacenado en el servidor B no tenga los derechos correctos, mientras que la cuenta utilizada para crear el procedimiento almacenado en el servidor A sí los tiene.
Recrear el procedimiento almacenado en B con otra cuenta puede resolver el problema.