Depois de algum tempo comentando e assumindo que o SP funciona bem com os mesmos parâmetros de entrada e dados quando executado no SSMS, finalmente acho que posso dar uma última dica:
Dependendo de quais ações são executadas no SP (por exemplo, inserir/atualizar/excluir muitos dados em um loop ou cursor), você deve definir nocount no início do seu código.
set nocount on
Se este não for o caso ou não ajudar, por favor, adicione mais informações, já mencionadas nos comentários (por exemplo, todas as configurações do Job e cada Jobstep, o que foi registrado, o que está no Jobhistory, verifique SQLerrorlogs, eventlogs,.. ..).Dê uma olhada também nos "Logs do SQL Server" talvez você possa reunir algumas informações aqui. Também é sempre uma boa ideia dar uma olhada no evento do aplicativo/sistema do servidor de banco de dados. Para obter uma visão geral básica, você pode usar o Activitymonitor no SSMS, selecionando o servidor de banco de dados e selecionando "Monitor de atividade" no menu de contexto e pesquisando o agente sql.
Minha última tentativa seria tentar executar um rastreamento sql para o agente. Nesse caso, você iniciaria um rastreamento e filtraria, por exemplo. pelo usuário que o Serviço SQLAgent executa. Existem tantas opções que você pode definir para rastreamentos, então eu recomendaria pesquisar no Google, pesquisar no MSDN ou fazer outra pergunta aqui no stackoverflow.