Interesting to hear that the intersect tool ends up flipping the polyline direction. Well if your network contains no loops or bifurcations then you could use RivEX to re-orienate the vector network to a snapped mouth point. Have a look at the online help and search for the reorientation tool, make sure you understand the input requirements.
When I used Intersect (Analysis) tool, stream segments were broken into reaches just fine but their orders were messed up
Line direction is not preserved in overlay operations - if you want to re-orient your lines you need to create a geometric network to find the ones pointing in the wrong selection, and then flip the selected lines using editing or the Flip Line tool.