Spring arm is not resetting its position

I’m creating a game that uses a player sized game ball that will attach in front of the player when they pick it up. Which led to my problem of the game ball going through the floor and walls once it was attached to a player. I was told the ball inherits the player’s collision so to get around this problem i attached the ball to sphere collision on a spring arm in front of the player. This worked for walls but not the floor. So I then created a second spring arm that the ball switches to if the first moves below the ground level that doesn’t inherit the players up and down rotation.

This works briefly but after a few switches the spring arms are in completely different locations from where they were originally and begin glitching my character through the ball and setting it in weird places. My next idea was to have the ball always snap to the end of the spring arm (instead of keep world) but then this takes away the ability of the spring arm to push back and my ball appears to go through walls again.

Does anyone have an idea on how to fix this? I just want my ball to not go through walls and floors when attached.

Here is the logic for my current spring arm switch if it helps, thank you in advance for the help!