Select multiple vertices using a list of coordinates with KDTree
Object mode non-bmesh version

Run script in object mode. Selects vertices in each object based on being closest to points in list.

import bpy
import bmesh
from mathutils import Vector, kdtree

context = bpy.context

coords_to_find = [
    (0.3203125, -0.734375, 0.7578125),
    (0.0, -0.2890625, 0.8984375),
    (0.453125, -0.234375, 0.8515625),
    (-0.6328125, -0.28125, 0.453125),
    (-0.796875, -0.125, 0.5625)
]

# Get the active meshes
meshes = set(o.data for o in context.selected_objects
        if o.type == 'MESH')

for me in meshes:
    size = len(me.vertices)
    kd = kdtree.KDTree(size)
    select = [False] * size

    # deselect all edges and faces
    me.edges.foreach_set("select", [False] * len(me.edges))
    me.polygons.foreach_set("select", [False] * len(me.polygons))

    for v in me.vertices:
        kd.insert(v.co, v.index)
    kd.balance()

    for co in coords_to_find:
        loc, index, dist = kd.find(co)  
        select[index] = True

    me.vertices.foreach_set("select", select)
    print(me.name, [v.index for v in me.vertices if v.select])
    #me.update_tag()
    #context.view_layer.update()


which if run on default scene, returns

Cube [5, 6]


Note this assumes the given coordinates are in local space.

For global coordinates would have to decide how to handle objects sharing the same mesh, since a different vert may be chosen based on object transform for each object that shares the mesh.