To change dynamic block properties you can do the same as the get Tag names but rather get Property names and display in a dcl. I am busy at moment, will see what I can do I do have something all ready done for visibility should be easy to change to properties.
I have not done a check is dynamic block ultimate would be to combine the two lisp codes, looking at block type.
Try this for dynamic block, download Multi getvals.lsp.

; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-change-lisp-to-accept-2-atts/td-p/13313319
; Update a dynamic block by display property name in dcl
; By AlanH Fen 2025
(defun c:dynup ( / x obj prop props)
;; Set Dynamic Block Property Value - Lee Mac
;; Modifies the value of a Dynamic Block property (if present)
;; blk - [vla] VLA Dynamic Block Reference object
;; prp - [str] Dynamic Block property name (case-insensitive)
;; val - [any] New value for property
;; Returns: [any] New value if successful, else nil
(defun LM:setdynpropvalue ( blk prp val)
(setq prp (strcase prp))
(vl-some
'(lambda ( x )
(if (= prp (strcase (vla-get-propertyname x)))
(progn
(vla-put-value x (vlax-make-variant val (vlax-variant-type (vla-get-value x))))
(cond (val) (t))
)
)
)
(vlax-invoke blk 'getdynamicblockproperties)
)
)
;; Get Dynamic Block Properties - Lee Mac
;; Returns an association list of Dynamic Block properties & values.
;; blk - [vla] VLA Dynamic Block Reference object
;; Returns: [lst] Association list of ((<prop> . <value>) ... )
(defun LM:getdynprops ( blk )
(mapcar '(lambda ( x ) (cons (vla-get-propertyname x) (vlax-get x 'value)))
(vlax-invoke blk 'getdynamicblockproperties)
)
)
(setq obj (vlax-ename->vla-object (car (entsel "\nPick block object "))))
(setq props (LM:getdynprops obj))
(setq lst '() lst2 '())
(foreach prop props
(setq bname (car prop))
(if (= bname "Origin")
(princ)
(progn
(setq lst (cons "" lst))
(setq lst (cons 19 lst))
(setq lst (cons 20 lst))
(setq lst (cons bname lst))
(setq lst2 (cons bname lst2))
)
)
)
(setq lst (cons "please edit" lst))
(alert "Enter new value leave blank for no change")
(if (not AH:getvalsm)(load "Multi Getvals.lsp"))
(setq ans (AH:getvalsm lst))
(setq X 0)
(foreach val ans
(if (= val "")
(princ)
(LM:setdynpropvalue obj (nth x lst2) (atof val))
)
(setq x (1+ x))
)
(princ)
)