How to store animation properties/values, and restore them on callback
I only added the relevant parts of the code.
The solution is to keep an additional setting that remembers the previous setting slide_1_start_previous. We now can calculate the difference by subtracting both values. and shift the strip using this value.

def frame_slide(self, context):
    difference = self.slide_1_start - self.slide_1_start_previous

    for obj in bpy.context.selected_objects:
        strip = obj.animation_data.nla_tracks[0].strips[0]
        scale = strip.scale
        strip.frame_start += difference
        strip.frame_end += difference  
        strip.scale = scale

    self.slide_1_start_previous = self.slide_1_start
    return None

# Register
def register():
    bpy.types.WindowManager.slide_1_start = bpy.props.IntProperty(name="Slide_1_SF", update=frame_slide,min=1,options={'SKIP_SAVE'})
    bpy.types.WindowManager.slide_1_start_previous = bpy.props.IntProperty(default=1)

    bpy.utils.register_module(__name__)


As you didn't implement it as an operator it is hard to determine when you want to reset these values. I would suggest placing this in an operator.