It's tough to diagnose on just the image but here's something to look at, related to the use of Split/Join inside a Subflow.
I'm guessing that your token that does the "unload Case" Run Subflow activity sends one child token into the Subflow. Now the Split activities by default create tokens that are independent of each other. So the original child token is still a child of the main token, but the new token that comes out of the Split activity won't be unless you tell the Split to make Sibling Tokens.
This can be important because the order of the connectors that lead back into a Join matters as to what token comes out of a Join. If the newly created independent token arrives to the Join on its first inbound connector, then that's the token that the Join releases. The original Child token would actually be destroyed by the Join which the Subflow would treat the same as hitting a finish activity. Since the Parent would only know about its one Child and not the token the Child created via the Split, that's enough to release the Parent token from the Run Subflow activity, even though the Split-created token is still in the Subflow.
If this is the issue, the best thing to do is to make sure that the original Child token always arrives to any Join on inbound Connector 1.