How to create tokens for custom fields (participant, individual, organisation)
Davy, You can use CiviCRM api to fetch the custom fields of participants, contact and then use as smarty in your message template 

Something like this you can include in invoice template

{crmAPI var='result' entity='ParticipantPayment' action='get' return="participant_id.contact_id.custom_3,participant_id.custom_4" contribution_id=$id}
{assign var="contactCustomField" value="participant_id.contact_id.custom_3"}
{assign var="ParticipantCustomField" value="participant_id.custom_4"}
{foreach from=$result.values item=participantpayment}
  &lt;tr&gt;
    &lt;td&gt;Contact custom field&lt;/td&gt;
    &lt;td&gt;{$participantpayment.$contactCustomField}&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Participant custom field&lt;/td&gt;
    &lt;td&gt;{$participantpayment.$ParticipantCustomField}&lt;/td&gt;
  &lt;/tr&gt;
{/foreach}


HTH

Pradeep