You can find severals posts on the differences between shared modules and modules. use the search facility at the top of this page.
All members of shared modules are publicly visible within the project. Whereas standard modules need to be included explicitly before calling any member functions/subs.
The use of shared modules should be limited only to codes that will always be used i.e. codes that will be re-used in almost every script. An appropriate use for shared modules would be for error handling. Contrary to Standard Modules in TestPartner, Shared modules need not be loaded using the ‘Include()’ function as they are automatically visible to the entire project as soon as they are created. Shared modules are included automatically for convenience but care must be taken for not using too many shared modules as they tend to affect execution performance if you have many of them. Shared modules belong to the project in which they are created and they always remain loaded in memory whether they are needed in a script or not. This is the resulting overhead from the use of shared modules, which should be minimized for efficiency. A potential problem with their over-use is that there can be Variable/Function/Sub naming conflicts.
For point 2 above, when calling your class module, saved your script after typing you include statement. You should be able to invoke the members of your class module
Wow! 100 shared modules! Are you sure you need them all to be always loaded in the memory as Flagman explained?
Do they really must be separated modules? You can as well merge them into one big shared module. One module can contain many functions - no need to create a new module for each new function.