Can you give an example what kind of data you would put in the mqtt header vs payload?

Asked anonymously in our MQTT 5 Webinar.
Generally speaking you want to put the message content in the payload. The payload is a byte stream and completely data agnostic.
Whereas you want to put metadata i.e. about the message, system, or sender in the user property header. Those values are in UTF-8 string format.
See also this blog post.