Persisting IVR variables to Participant Data for downstream Architect actions

We are attempting to pass custom context variables collected during an IVR flow into the Participant Data object. The goal is to make these attributes available to subsequent routing and reporting actions without relying on temporary call variables. We have configured a Set Participant Data action in Architect with the following JSON payload structure:

{
 "data": {
 "custom_ivr_input": "{{IVR_Collected_Value}}",
 "timestamp": "{{System.TimeNow}}"
 }
}

The action executes without immediate error in the flow trace. However, when we query the participant data later in the flow using the Get Participant Data action, the custom_ivr_input field is null. We have verified that IVR_Collected_Value contains the correct string at the point of assignment. The documentation suggests that Participant Data persists for the duration of the conversation, but we are seeing a disconnect between the set action and the retrieval. Is there a specific scope limitation we are missing? We are using the standard REST proxy for validation. The flow ID is consistent across steps. We need the data to survive handoffs.