Something like this may work (I marked where some code would run if an overlap occured with the warn())
for _, Model in ipairs(TREES) do
local Params = OverlapParams.new()
Params.FilterDescendantsInstances = {Model}
Params.FilterType = Enum.RaycastFilterType.Exclude
for _, Part in ipairs(Model:GetChildren()) do -- edit: Made it 'do', not 'end'
if #workspace:GetPartsInPart(Part, Params) > 0 then
warn("OVERLAP")
end
end
end