We had someone here try this. It ended up being super slow but it was a huge list with lots of parts.
He was using regex which I am still not sure why it works but it did.
Have a field outside the repeat the first repeat that tracks the choices using join(",",${AddPlants})
Then in the list you use regex in the choice filter regex(${SpeciesListJoin}, name)
So basically making a big choice filter list.
Hope that makes some sense.