The issue is because you are collecting each DXF data list into a parent list (ttl_txt), but then performing the substitution on the parent list rather than each of the DXF lists it contains. However, I see no reason to construct the separate list in the first place, simply perform the update on each item as you encounter it:
;; --- Modify "Panel Zone: Wind 1" to say "Wind Pressure Diagram" --- ;;
(cond
( (setq ss5 (tblobjname "BLOCK" "DesCalc"))
(while (setq ss5 (entnext ss5))
(setq ent5 (entget ss5))
(if (= (cdr (assoc 1 ent5)) "Panel Zone: Wind 1")
(entmod (subst '(1 . "Wind Pressure Diagram") (assoc 1 ent5) ent5))
)
)
)
)