I will try to example our situation.
We use what we named "template courses". These are courses that are the original and them we create the real courses students use with Moodle procedures to do so. Namely the "upload courses" feature.
So something to bear in mind, in Moodle you have categories for organizing your courses, and you have categories for your question bank. They are totally apart from each other BUT, as I will try to show you further in the explanation of our case, they are somewhat "connected".
We have a course category "Course Template", inside we have all our courses, some in sub categories. Assuming "Course Templates" has our main category, then we have courses in these main category, these are the courses where we don't need to share question, and as such, the questions for these courses are at the course level. But them we have some courses that need to share questions, so we made another category, for example, "Template DMIF". Inside "Template DMIF", we have a number of different courses that share the questions inside DMIF and because there are some that share part of these questions and have some that are specific we create another category, "Template MBCP". These are all course categories.
Now the fun part 😆, by default, when you create one course category Moodle creates a question bank category with the same name.
So, in practice, for courses that don't share question, you put them at the main level in the "Course template" level.
We have some courses that share de DMIF question, so we put the courses inside the DMIF course category and assigned these questions to the DMIF category in the question bank category. We have more specific courses that share DMIF question AND have specific questions, we put them in the "Template MBCP" and have access to the questions in the parent category "DMIF" and also the specif "Template MBCP" ones.
This is quite simple to implement but probably I'm terrible at explaining it ...
Here is a little movie to try to explain this in practice, sorry for the quality but it was made in a hurry:
There are 2 drawbacks to this approach:
1 - If you use, like we do, the "upload courses" feature, the courses inside subcategories of "Course templates" need to be created in the original category, and them you move them to the proper category altering this in the course settings. I opened a thread about this and, "mea culpa", I should have opened a bug tracker... It's better explained here: https://moodle.org/mod/forum/discuss.php?d=396614
2 - If you nest 2 or more levels of subcategories and have a substantial number of question in a quiz that is part of the course to create, there are a good probability that the quiz will be wrongly created with missing questions, you have to check these situations. We made a report to check if there are courses in this situation and we run this report wright after the creation process. If we have this problem them what we do is we import only the quiz to the newly created course. This problem I don't know if is a bug or not. We have something that may have problems that some other folks don't have, because we use a Oracle database and in the passed we had issues because of it. Oracle is accepted but not the preferred DB for Moodle.
Also, we are on Moodle 3.7 and we are in a process to upgrade to the 3.9 version. Unfortunately we have some clients that still have the Internet Explorer so we cant move to 3.10 version...
Maybe I was a bit confusing, hope not. Hope this helps you.