It is unnecessary to hexlify then unhexlify as shown below.
recipientId = hexlify(self.serialized)[
recipient_start_index : recipient_start_index + 42
]
recipientId = b58encode_check(unhexlify(recipientId)).decode()
The code currently resides HERE (in multi_payment.py), but will change after the merger of #32 (to transfer.py).
(This change was not requested in #32 because it was introduced from upstream.)