This form of matched.distances() is returning a list of vectors not a list of matrices. This is no good because for each pairing only one of the two participants gets its name recorded.
It might be time for a matched_distances() alternative, always returning a data frame with columns for the distance, the corresponding row name (treatment unit name) and the corresponding column name (control unit name).