Kodi, as you may recall from a decade ago, has its roots in the old Xbox Media Center. It grew beyond that OG Xbox a long time ago and runs on just about anything these days, although things like Raspberry Pi 4s are a common (and performant) choice for dedicated hardware. It is open source. Kodi is primarily a media player (load files from local or regular-ass SMB NAS, and play them), and it is very good at doing that correctly (correct screen resolution and refresh rate, correct audio format selection and output -- that sort of thing). It generally operates in a largely standalone configuration.
Plex also has its roots in XBMC, but it went in a different direction: It is split into two parts: The Plex client, and the Plex server. It's a very different beast: While Kodi can play whatever you throw at it on your own LAN, Plex can let someone three continents away play that same thing over your WAN -- with official Plex client apps from the usual official app stores [from Apple or Google or Roku or whoever], so it's very approachable. But the server can be heavy (it does video transcoding), and that server also has features that want to be paid for, and it is not exactly cheap.
Jellyfin, meanwhile, is a fork of Emby. Both Jellyfin and Emby exist because Plex is neither free nor open. They do many of the same things that Plex does, and also have a client and a server component.
---
I use Kodi in my living room because it is the thing that works most-correctly with my particular home theater gear.
At my parents' place, they use Plex, because it is easy for them to use (the interface is easy, and I maintain the Plex server) and they aren't as picky as I am: They're happy if there are moving pictures on the screen and sound coming out of speakers. (I have the bandwidth to support remote Plex usage, because it does transcoding, but I do not have enough bandwidth for them to run Kodi with my video library.)
I don't use Jellyfin (or Emby) because by the time I learned of either those, I'd already paid for Plex.