Hi Lucas,
If you want to remove the null value, I'd recommend applying the function "Remove Empty Items". However, if you remove the empty values, you won't know which values need to be updated. Instead, I handled this by performing the conditional logic inside the for each loop. While I'm iterating through the insurance types, I check whether the current Effective/Expiration date has been filled in with a logic calculation.
You could try performing this logic with the Token Calculator activity. Inside the For Each Loop, before updating the shell tokens, add a token calculator activity to evaluate the condition. The new workflow looks like this:

The logic in the Token Calculator (named Conditional IF Calculation) sounds like this:
IF the effective date at the current iteration is empty, replace the date with the first value of the effective date. IF not, leave the old value.
In Token Calculator language it looks like this: IF(%(RetrieveFieldValues_Test Effective Date_All#[%(ForEachValueInsurance_Iteration)]#)="", %(RetrieveFieldValues_Test Effective Date_All#[1]#), %(RetrieveFieldValues_Test Effective Date_All#[%(ForEachValueInsurance_Iteration)]#))

(Those are double quotes with commas between each token).
For the first Test Effective Date_All token, I have an index applied at the current iteration. (This gives me the value of the effective date at the current multivalue group I'm looking at.) The exact configuration looks like this:

The second token is what to replace the value with if it is blank. This is the first value in the effective date (at index of 1). The configuration looks like this:

The third token is the value to write if the effective date is NOT empty. I'm writing in the value that was there to begin with. This is the same as the Effective Date at the iteration.
Once you've performed the calculation, you'll want to update the shell token with the calculation.
You can add the expiration date (and any other tokens you want to iterate through in this manner) by adding a New Token to the Token Calculator activity and updating the Shell tokens with that calculation.
I hope this helps!