I can reduce it to min-cost-max-flow problem.
Let's make a network. Assign a vertex to each unit and each point. For each pair (unit, point) add an oriented edge with capacity 1 and cost equal to corresponding Manhattan distance. Add a sink, connect it to all units. Add a trap and connect all points to it.
Assign the following values of cost and capacity:
cap( u, v ) = 1, if there is an edge from u to v
cost( u, v ) = 0, if u = sink or v = trap; otherwise it's equal to manhattan distance from unit u to point v.
Now if we find min-cost-max-flow in this network, it will be the solution to your problem. Why ? Because we found the minimal cost way to move a unit of flow from each "unit" vertex to some "point" vertex, which is equivalent to the original problem.