If I understand the question, and noting that my expertise is really Asterisk, not FreePBX, it seems to me that you could define extra outbound routes which have the caller ID match field set, but not the caller ID set, to pass through those caller IDs you don’t want setting according to the route.
You could also use prefix digits which the caller users to select an alternative route that doesn’t override the caller ID.