Rather than spend a lot of time setting up and testing something extravagant, I'm going to suggest a simple and trusty technique that has worked well for me over the years.
What I do is create a dimension style for labeling the pipes. The style has no terminators, dimension lines or extension lines. Essentially the dimension style is just the text component, so when you place it on the line you get a piece of text that stays aligned and you can slide it along the line. The nice thing about using a dimension is it always stays aligned and in it's relative position should the line move or change length. It allows for global edits by changing the style. Since it is a generic entity it can be used on most any object and it is simple to use and manage.
Of course when you place the dimensions, the text will show the the length of the element by default, so you'll have override the values afterwards, but you can do that by selection set so it's not a lot of work.
Access a broad range of knowledge to help get the most out of your products and services.