Have spent the weekend exploring this and yes you are right that if the courses are hidden the users cannot access the issued certificate. This is due to the access control or Moodle going through the callback feature which does the permission or capability checks before service the certificate file. So when a course is hidden - before Moodle serves the stored file (in this case certificate file), it checks whether the learners are even allowed to access the course (the certificate file is part of the course). When it finds that learners are not allowed to access hidden courses (moodle/course:viewhiddencourses) then it rejects access to the course and serves you with "This course is hidden message".
Now the only way to resolve this is to create a completely new file serving mechanism for the plugin so it will completely bypasses Moodle's core file serving API. This could potentially create security issues (serving wrong files, security breaches etc). So I will continue to investigate and look at creating a new file serving mechanism but it will have to be heavily tested and understood before releasing it to the community.
But this is what I have been doing on our live site:
1. Enable moodle/course:viewhiddencourses for students / learners. You can find this under Define Site administrator>>Users>>Permissions>>Define roles.
2. Now you can hide the relevant courses but make sure you select "Enrolled users only" under Courses administration>>edit settings>>visibility. Also hide all other topics, resources, activities on the main course page except the certificate activity.
3. Now the users can download the hidden / archived certificates.
I know this is not the tidy approach but it works. I will update the plugin if I manage to find alternative solution.