I finally got time to go back to this, so for the people who looked, this was for a Description attribute on Change.
All our descriptions are plain text so setting the Sub Type to HTML would have cross-module impacts.
In the end I set up another attribute on Change with a Before Save calculation (Dependency on Description) and present that in the HTML Report overlay instead of the original plain text attribute.
static def GetAttributeValue(Change):
Value = ''
if Change.Description != null:
Value = Change.Description.Replace('\n','<br>')
Hope that helps anyone who hits something similar.