In the RadialCollision class you replace the owner's Vector2f with another instance of Vector2f upon collision.
That works fine at first because effect_location has the desired values [0,0], but whenever you collide after that, your are assigning effect_location as the owner's location Vector2f object again.
Replace
Code:
owner.setPosition(effect_location);
with this
Code:
owner.getPosition().set(effect_location);
Doing that will set the values in the owners location Vector2f to the values in effect_location, rather than replacing it.