May not be exactly what you're talking about, but.... a problem I ran into in 2D recently, was the KinematicBody2D always interacting in weird ways with any RigidBody2D. If my character landed on a RigidBody2D it would push it through the floor, but in a weird way.
in moveandslide, if you have infiniteinerta = true (which is by default) try calling the moveandslide with infiniteinertia=false. This fixed that issue for me.
Vector3 moveandslide ( Vector3 linearvelocity, Vector3 updirection=Vector3( 0, 0, 0 ), bool stoponslope=false, int maxslides=4, float floormax_angle=0.785398, bool infinite_inertia=true )