With a proper authoritative host set up, the only thing a peer should be sending to the host is their inputs, and the host already has all the data values to begin with.
But since that isn't the approach you are using, the only things I can suggest is:
a. Send multiple messages with different tags containing different information.
b. Send a single message using a token to sperate different information, and on the host side parse it back out with the tokenat() expression. You can use the & operator to combine strings when building your message.
As for identifying who sent the message, that should have been covered in the multiplayer tutorials. In an event with the "on peer message" condition, you can get the peerid of the originator with the "fromID" expression.