How to multiply vector with list items
inst_verts_coords is a list of coordinates (Vectors). So you won't be able to apply a matrix to this list. Maybe you want to change the following line (assuming you want to apply matrix to each individual Vector element of the list):

part_obj_coords = [p.location @ inst_verts_coords]


to:

part_obj_coords = [M @ co for co in inst_verts_coords]