My replication setup got corrupted somehow, and I had to recreate it all. Even though I stripped out replication data from the database before recreation, there were still SQL Agent jobs defined for these databases that were running. I needed to delete/disable the old jobs, then everything looked good in replication monitor.
Synchronization never stopped in this case, but the manager doesn't seem to separate the status by job, just by database. So it would show an error for the jobs that couldn't connect, while running synchronization in the correct job.