縦軸の移動速度が入ってる変数の計算が間違ってるとしか・・・

移動→衝突判定→移動速度反転→枠外へ飛び出してないか判定して枠内に強制移動

貼り付く挙動は枠外判定の補正処理がずっと続いてる可能性が高い。
移動方向が反転してないと思われる(余分な処理で反転したものがさらに反転してるとか)