Almost all clients support file sharing. The Movim client <https://mov.im/> supports screen sharing. It should be noted that both Jitsi & Zoom use XMPP for the roster/chat/handshaking as well; so if you set up a Jitsi server for calls & such, you would already have a working XMPP server on your server that could be co-opted.
I never managed to get file sharing working on my self hosted discord instance. Needing to setup DNS entries and subdomains for every little feature got tiresome and I gave up.
Also the default of "save all shared files on the server" didn't sit well with me.
But xmpp is so damn complicated I am 100% sure I am misunderstanding everything and doing something wrong.