Hi @toadz
The requirement seems can be completed by creating the global policy to your organization in Teams admin center. The following example is for your reference. Hope it can give you some ideas.
For Message Policy:
Go to Teams admin center. Click Messaging policy > Global(org-wide) > choose chat and turn it off.
File Sharing:
This can be setting in SharePoint Online Site. For details about how to set it, you could refer to this blog.
Joining Channels:
There is no such settings could control who can join Teams channel. But private channel may meet your requirements in some ways. In Private Channels, you could select the down arrow and choose Private - Accessible only to a specific group of people within the team. For more details, please refer to this article.
Note: Microsoft is providing this information as a convenience to you. The sites are not controlled by Microsoft. Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. Please make sure that you completely understand the risk before retrieving any suggestions from the above link.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.