Check the owner of the job(s) in querstion. It may be owned by an SID that does not resolve to a valid login which could be giving SMO heartburn.
SELECT SUSER_SNAME(owner_sid)
FROM msdb.dbo.sysjobs
WHERE name = N'problem_job_name';
There are no special teachers of virtue, because virtue is taught by the whole community.
--Plato