I wondered about this before but apparently the Telegram client is terrible spaghetti code under the hood, making these kind of ideas not feasible.
You might like Monocles Chat though, which is an Android XMPP client with a somewhat nicer looking interface.
There is also the work in progress Moxxy client, which is a from ground up new XMPP client written in Flutter. It seems to take some interface inspiration from Telegram, but to be honest, it isn't anywhere near to be fully usable and development has been slow in recent months.
OP, I understand what you look for, but that's not easy task. From my limited knowledge of apps development, achieving what you requested would likely be:
Identify and remove all relevent code to the backend. Easier if it's modular, very hard if they're litrered everywhere.
Chose a XMPP client library that have relavent extension support that can translate Telegram features that XMPP understands.
Write an adaptor (if modular) to match the methods signature and translates calls to the client library. Or reimplement all the code you removed (if littered everywhere) with the client library.
This is akin to swaping to a new engine for a car, with incompatible mounts. Diffcult to execute, and (I believe) low interest. You can try if you got the skills. I don't and even I have, I will just use SimpleX which fits my needs.
In theory you could use Telegram X and reimplement the tdlib API to create such a client. It wouldn't be the main Telegram Android app, but Telegram X is in someways even nicer.
If you don't strictly speaking need XMPP, you might want to checkout Jami which is a peer-to-peer based chat app with a fairly polished UI. It still definitely feels like beta software at times though, so more of a "be aware of it and check in on it" than "actively use this for all of your chats" sort of thing.
You want a bridge. Like Jabagram or Emulsion. But there's a limited set of features that will work. For example, reactions or group admin on telegram can't be easily replicated over xmpp. And, in any case, we are talking more about having messages and media on both rooms, on either side, replicated. That way, users on telegram (e.g. your friend) can talk to users on xmpp (e.g. you). Reliability for bridges is not good, there are glitches and messages that doesn't make it to the other side, whichever that is. I'd say you prefer to self-host xmpp with cherry-picked extensions, like snikket.org