Using RivEX on your data, it regularly fails, node types don't make sense but the topology of the network conforms to RivEX input standards.
A potential source of error, especially if the topology of the network is OK is the resolution and tolerance of your FeatureClass. If your data has anything other than the default settings then this can influence how tools/code operates. Traditionally when creating a new FeatureClass for storing the river network the default resolution is 0.0001 meters and Tolerance is 0.001 meters. If your dataset has anything else this can severely compromise RivEX.
You can solve this by creating a new FeatureClass in ArcCatalog with default settings, import the fields and then load your old network into your new FeatureClass.