Don't know much about the PS4 side of things, but I have set this up for Xbox, Switch and Mobile.
Is your son's Xbox Live account a child account, linked to yours in a family? Because that was borked for a long time but works now, there are a couple of extra settings to tweak on the Xbox before it'll work on there though. I'll assume not for now.
You have to link your Xbox (or Playstation) account to an Epic Games account for it to work. Go to Epic's website, but don't just create an Epic account - if you've already played Fortnite, there's an option to select the platform you've played on, then it will ask for your gamertag and automatically create a linked account.
Then, next time you play on console, there should be an Epic Friends option in the lobby menu. That's where you go to enable cross play.
(The tricky bit on Xbox was if you had a child account, and were under 13, then no matter what permissions you tried to give the child account it just wouldn't enable cross play. Microsoft have fixed this now, you have to go into the child account's main Xbox settings and enable cross platform multiplayer and comms, then it will work.)