Call forking with header manipulation and groups


I’m trying to do some weird parallel call forking with header manipulation in one go but currently fail to achieve my goal.
My goal: I have different numbers for various jobs and one line per job. One for example has it’s own landline which is routed to a number in its own dialplan which has a phone 35 assigned to it. All calls from that phone use the respective CLIP info and outgoing line.
Now I’m trying to add a dynamic call group to be able to join that group with a DECT phone and leave again when I’m back at the desk or somewhere else.
Since the DECT (let’s call it 41 but could also be 42 or both) isn’t in that dialplan and has a different effective_caller_id_number and default_gateway set in its directory settings (which I use for the outgoing call), I want to rewrite the incoming call caller ID to include a prefix, which sets the right variables in the dialplan when returning the call.
I tried to do it with that line in the dialplan:

35 is my desk phone, 36 is a sip client on my mobile phone and the last part it the group which I can join/leave with any phone I like.
That only works partially:
When setting a redirect to my mobile phone at the desk phone, all other forks stop immediately (also with ignore_early_media=true).
Rewriting the caller_id_number only works for the first phone in the group, it looks like the group gets expanded first and then the variable is changed.

I don’t want to rewrite the caller_id_number on the leg towards 35/36.

Any idea whan I’m doing wrong?

P.S.: Freeswitch 1.10.10 on debian buster currently