unable to run two (or more) scripts together
Using the rigify addon as an example, you add a custom property to the armature that holds a unique rigID for each rig, then you register duplicates of your operators and panels that are customised for each rigID.

rig_id = "ThisRig"

class Rigify_Leg_FK2IK(bpy.types.Operator):
    """ Snaps an FK leg to an IK leg.
    """
    bl_idname = "pose.rigify_leg_fk2ik_" + rig_id
    bl_label = "Rigify Snap FK leg to IK"
    bl_options = {'UNDO'}
    ....

class RigUI(bpy.types.Panel):
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_label = "Rig Main Properties"
    bl_idname = rig_id + "_PT_rig_ui"

    @classmethod
    def poll(self, context):
        if context.mode != 'POSE':
            return False
        try:
            return (context.active_object.data.get("rig_id") == rig_id)
        except (AttributeError, KeyError, TypeError):
            return False
    ....


As an example, if you were using rigIDs of char1 and char2 then you will find the following classes registered -

bpy.types.pose.rigify_leg_fk2ik_char1
bpy.types.pose.rigify_leg_fk2ik_char2
bpy.types.char1_PT_rig_ui
bpy.types.char2_PT_rig_ui