Need an advice on how to handle player data in multiplayer

Take into account that players may separate and never play again with each other opting for looking for a new game. In this case you can’t save player persistent data on the host.

One option is a centralized server that would hold persistent data in a database and be the “memory” of your project.
Each player would logon and register and be given a unique id as which you could later retrieve this information. All player updates would be periodically updated on the database.
The downside is that this requires upkeep. The server has to be running which costs money and you have to have good internet access

All data retaining to the current game session would probably be volatile. The session data (quests / tasks / challenges) could be saved on the hosts pc (maybe with a list of attendees) or periodically to the database.

(In case of having the database you could save the session in the database instead of the hosts pc).

=======

Option two if you don’t want central control and have less intensive to prevent hacking
Player persistent data would be stored locally on that persons pc, so that when they change sessions their characters data remains saved.

Session could also be stored on hosts pc.

You could go the route of some sort of CRC check of data and then save on all pc’s and upon load compare the CRC from all players to see if someone edited their save file and cheated.

There are many ways to skin a cat in this case.