Turns out that it's down to the default behaviour of the reply_to_sender method in Mailboxer where sanitize_text is set to true
(Object) reply_to_sender(receipt, reply_body, subject = nil, sanitize_text = true, attachment = nil)
changing my method call to the following fixed this:
reply = current_user.reply_to_sender(receipt[messageIndex], params[:body], nil, false, nil)