Any specific reason you're not using mleaders?
I use mleader in a similar context but where the end of the leader is always on the connected object
(in that case a block). So, working in reverse, starting from each block I find the leader "associated" with:
; _Utils_SsgetMLeader '(1905.13 2043.22 0.0) 1)
(defun _Utils_SsgetMLeader (PntLst FuzFac)
(ssget "_X"
(list
'(0 . "MULTILEADER")
'(-4 . ">=,>=,>=")
(cons 15 (mapcar '- PntLst (list FuzFac FuzFac 0)))
'(-4 . "<=,<=,<=")
(cons 15 (mapcar '+ PntLst (list FuzFac FuzFac 0)))
)
)
)