This code below produces this display of CustomValuesXML in Order Details as follows:

Payment Receipt No: 998317
Payment
Payment Method: Zippay and Zipmoney
Payment Status: Authorized

But I think the code is in the wrong place and should display the values under the Payment Status so that the information is grouped correctly under Payment
@if (Model.CustomValues != null)
{
     foreach (var item in Model.CustomValues)
     {
         <li class="custom-value">
         <span class="label">
             @item.Key:
         </span>
         <span class="value">
             @(item.Value != null ? item.Value.ToString() : "")
         </span>
         </li>
    }
}

Given that there is a routine in Payment Services designed to Serialise the data for a payment
_paymentService.SerializeCustomValues(processPaymentRequest),

It seems that order.CustomValuesXML really is designed to be used with Payment Methods to record extra details like Reciept Number and display them to the customer as I have done before.

So I am wondering why the output is grouped with the Billing Address rather than with Payment

I think it would make more sense in it was moved below Payment Status:
i.e.

Payment
Payment Method: Zippay and Zipmoney
Payment Status: Authorized
Payment Receipt No: 998317

rather than

Billing Address
Pennant Hills, New South Wales, 2120
Australia
Payment Receipt No.: 998317

Payment
Payment Method: Zippay and Zipmoney

Thank you :)