There are a couple of factors at play here:
1. When the selection includes multiple objects, Remove and Rewire removes them (and rewires them) one at a time, not as a group.
2. With one exception, remove and rewire will not keep broken wires. That exception is when there is a single object being removed, and it has exactly one input and one output.
As applied to your code, the functions get removed one at a time, the resulting rewired wires are broken (because the CDB array is being wired to a terminal expecting a DBL array, or vice-versa), and the broken wires are removed.
Ideally, Remove and Rewire would treat a selection as a single unit and look at the inputs and outputs to that unit. I doubt this will ever be implemented in LabVIEW 20xx, although you're welcome to post it to the LabVIEW Idea Exchange. If you'd like to see this in LabVIEW NXG (which has a completely different implementation for Remove and Rewire), you can use the in-product feedback feature.