Hey @RLK_III!
What it looks like to me from what I can see, is that your character’s movement check is initially set but never updated in the first blueprint you shared.
Instead how you have it currently set up, I suggest making a reference to “Is Swimming” in your ActorBeginOverlap and ActorEndOverlap and setting it there, or doing so in your movement event graph, so your bool can update dynamically.
I hope the above solution works for you.