You commented that you may be investigating ReportLab to write your reports, presumably with Python. I have done it that way in the past.
When next I try to do this from Python I may try these ArcPy techniques:
ExportReport function (ArcMap):
The ExportReport function provides a mechanism to automate the
generation of reports using layers or tables ...
Turns out it is quite an easy task in ArcObject. Type cast the feature to network feature and you are done. Below is the code for reference.
# get current ArcMap application pointer
pApp = NewObj(esriFramework.AppRef, esriFramework.IApplication)
# get selected features from ArcMap
pFeatSel = CType(pApp.Document, esriArcMapUI.IMxDocument).FocusMap....
Nothing specific is jumping out to me, so I'm going to list a few solutions I find can help when encountering odd ArcObjects errors:
Are you running your code in a Single Threaded Apartment (STA) thread? If not try creating a new Thread and settings the apartment state to STA and executing your code on that thread.
Set 'Embed Interop Types' for all Esri ...