Why not just copy and paste all 3 into one lisp ?
1 Hint centroid can be 1 line of code using a inbuilt function.
(setq obj (vlax-ename->vla-object (entlast)))
(setq cpt (osnap (vlax-curve-getStartPoint obj) "gcen"))
2 lot of code for insert block ? Just check does exist if not make it as you only need 1 att. I would remove (getstring "\nName of block to insert: ") use a hard coded block name so exists in your DWT.
3 Lee's code is great but as you know the block that you inserted step 2 just edit the attribute with the field answer no need for a total 3rd program. The answer for the att string is in Lee's code.
So the steps
Select all plines making selection set
Loop through selection
Insert block at centroid
Amend block attribute string value to field
Repeat for all plines.
Maybe 100 lines of code probably less.
I have not posted any code as did you google "label area multiple pline autocad lisp"
if you need continuous line
im in mobile so cannnot use <code>...
(setq pt1 (getpoint "\nStart point: "))
(while (setq pt2 (getpoint pt1 "\n next point: "))
...
and one more
(princ offsetline2endpt)
(setq pt1 pt2)
)
but you need offset line also continuously, use lwpolyline instead of line is easy