I'm not being facetious. Try that, and then try doing it with Matrix/Element. Tell me which one do you end up with.
"WhatsApp works fine, I talk to you on there already" (in reality, via a Matrix-WhatsApp bridge)
"Who am i going to talk to on there?" (Me?)
"I don't want to install another app" (but installing ad-laden Viber is fine...)
"I cannot share pictures to Element so I sent it to you through [iOS] Messages" (well, Element removed share capabilities in iOS due to a rare bug)
Simply ignoring messages (their iMessage and calls rings from all connected devices, but Element just notifies once)
Element (then called riot.im) managed to do text, audio and video calls. The app had some bugs, but nothing that would block me from calling each other. The UX can still be confusing and I have occasional conversations where my father complains he can not hear me, most of them caused by my father not knowing that kept the video call but switched to the internal phone speaker instead of the external one.
I heard about Siskin some months ago. Honestly, I haven't tried it yet. It might be that is fully functional, but the UI is so bare that there is no way that I'll be able to convince my father to switch to it. He still complains that he'd rather use WhatsApp like everyone else, so whatever XMPP brings now will be a case of "too little, too late".
Maybe you can give your father a non-iOS phone if that is what is keeping your experiment from succeeding? We're all on Android here, anything from stock Samsung like my mother uses to self-built LineageOS like I use and we have no problems like you describe. I video-chat daily with my mother without problems, we're using Jitsi Meet (hosted on the same server) for larger video meetings, we've used Nextcloud Talk (also hosted on that server-under-the-stairs) as well but now mostly use Conversations. Telegram also works well for video chat but that is neither self-hosted nor end-to-end encrypted so it is not a real comparison to Matrix or XMPP with OMEMO.
I have tried Matrix/Element (self-hosted, of course, like everything else I use) and found it lacking compared to XMPP. It just seems to add needless complexity and does not offer anything worthwhile to compensate for it. I tried some Matrix bridges as well but found these lacking for my purposes.
So the answer to your question is 'I ended up with XMPP'.