why is the + button from UnityEvent in Custom Inspector unresponsive?

The + button is my UnityEvents in my custom inspector is unresponsive.

I think Im doing everything I’ve seen from googling.

Here is my code. I apologize that it is a bit complex…
Updated code to pass the SP by reference, stil ldoesn’t work…

public class PlugInputBinderEditor : Editor
{
    private bool showButtonBindings = false;
    private bool showFloatBindings = false;
    private bool showNormalizedBindings = false;
    private bool showAsciiBindings = false;
    private HashSet<string> openFoldouts = new HashSet<string>();
    public override void OnInspectorGUI()
    {

        serializedObject.Update();
        PlugInputBinder binder = (PlugInputBinder)target;
        binder.UpdateVAxes();
        SerializedProperty bindings =
            serializedObject.FindProperty("boolBindings");
        showButtonBindings =
            EditorGUILayout.Foldout(showButtonBindings, "Button Bindings");
        if (showButtonBindings)
        {
            DoBindings(ref bindings, bindings.arraySize);
        }
        
        bindings =
            serializedObject.FindProperty("floatBindings");
        showFloatBindings =
            EditorGUILayout.Foldout(showFloatBindings, "Analog Bindings");
        if (showFloatBindings)
        {
            DoBindings(ref bindings, bindings.arraySize);
        }

        bindings =
            serializedObject.FindProperty("normalizedBindings");
        showNormalizedBindings =
            EditorGUILayout.Foldout(showNormalizedBindings, "Normalized Bindings");
        if (showNormalizedBindings)
        {
            DoBindings(ref bindings, bindings.arraySize);
        }
        bindings =
            serializedObject.FindProperty("intBindings");
        showAsciiBindings =
            EditorGUILayout.Foldout(showAsciiBindings, "Ascii Bindings");
        if (showAsciiBindings)
        {
            DoBindings(ref bindings, bindings.arraySize);
        }
        if (GUI.changed)
        {
            serializedObject.ApplyModifiedProperties();
        }
       
    }

    private void DoBindings(ref SerializedProperty bindings,int blen)
    {
        EditorGUI.indentLevel++;

        for (int i = 0; i < blen; i++)
        {
            SerializedProperty serNode = bindings.GetArrayElementAtIndex(i);
            SerializedProperty serName = serNode.FindPropertyRelative("vaxisName");
            if (DoFoldout(serName.stringValue))
            {
                EditorGUI.indentLevel++;
                SerializedProperty serEvt = serNode.FindPropertyRelative("Callbacks");
                EditorGUILayout.PropertyField(serEvt);
                EditorGUI.indentLevel--;
            }
        }
        EditorGUI.indentLevel--;
        
    }

    private bool DoFoldout(string key)
    {
        bool fstate = EditorGUILayout.Foldout(
            openFoldouts.Contains(key),key);
        if ((fstate == true) && (!openFoldouts.Contains(key))){
            openFoldouts.Add(key);
        } else if ((fstate == false) && (openFoldouts.Contains(key)))
        {
            openFoldouts.Remove(key);
        }
        return fstate;
    }
}

figured it out. It was beccquse I was updating the inspevted object from inside OnInspectorGUI