Toolset is not the best fit for a Management System of this kind.
I replied lots of similar questions, and provided ideas and solutions that mostly involved also Custom Code.
The restrictions are exactly where you mention them, and often those are not caused by Toolset, it's just how WordPress works.
Let's not forget that this is thought to be a Blogging Platform.
Toolset puts a lot of features on top of that, b ut for such complex management systems I usually suggest to not re-invent the wheel, even if I admit it triggers me to do it with "Toolset only" and it is possible, but only when you also can apply custom logics at some times.
There are several tools out there that practically deliver exactly what you need:
hidden link
Let me also reply to your doubts:
Making Teachers, Students and courses (parent) as CPT or using WordPress default Posts for Teachers & Students and Courses as Categories? each solution has many difficulties.
It depends.
Depends if you need to issue exams, evaluate exams, have tutorials, step by step briefings, etc etc.
There is really no "best way". You need to have a "picture" of who can/should do what on this system and also, if those "who's" need to be real persons or could be virtual (post types)
What about the relationship between the CPTs and the Actual WordPress users? how to get them connected?
Usually with Custom Code added to a CRED API hook (if things happen on the front end) or the save_post() action for example.
It is required to use Custom Code to update an user data with post data or vice versa.
Nowadays CRED supports Users forms, but those will not create any related posts, or vice-versa, you can not create posts with user forms on the fly. You need code for that.
I do not think we will have a tutorial or case study for that given that it is above the planned scope of Toolset.
But please do not hesitate to ask us details in new tickets and, I will also let Agnes reply here in regard of the Tutorial/Case study, she is our master of trainings, tutorials and more ☺️