Hey, I'm working on an input system, but somehow it doesn't work anymore

I worked on and completed this [Tutorial] (How To Build a Custom Input Manager in Unity C# - YouTube )
the day before, today I wanted to implement it in my real game and suddenly it didn’t work anymore, somehow the scripts no longer want to communicate with each other even though I only added a few variables.
There is a: public static GameManager GM;

here are the Scripts: Number 1 = GameManager.cs

public class GameManager : MonoBehaviour
{

    public static GameManager GM;

    public KeyCode drift { get; set; }
    public KeyCode forward { get; set; }
    public KeyCode backward { get; set; }
    public KeyCode left { get; set; }
    public KeyCode right { get; set; }
    public KeyCode restart { get; set; }
    public KeyCode menu { get; set; }
    public KeyCode item { get; set; }

    void Awake()
    {
        if (GM == null)
        {
            DontDestroyOnLoad(gameObject);
            GM = this;
        }
        else if (GM != this)
        {
            Destroy(gameObject);
        }
        
        drift = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("driftKey", "Space"));
        forward = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("forwardKey", "W"));
        backward = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("backwardKey", "S"));
        left = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("leftKey", "A"));
        right = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("rightKey", "D"));
        restart = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("restartKey", "R"));
        menu = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("menuKey", "M"));
        item = (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("itemKey", "LeftControl"));

    }
}

and number 2 is the UI Menu Script also in C#

public class Controlsscript : MonoBehaviour
{
    Transform menuPanel;
    Event keyEvent;
    Text buttonText;
    KeyCode newKey;

    bool waitingForKey;

    // Start is called before the first frame update
    void Start()
    {
        menuPanel = transform.Find("Panel");
        menuPanel.gameObject.SetActive(false);
        waitingForKey = false;

        for (int i = 0; i < 8; i++)
        {
            
            if (menuPanel.GetChild(i).name == "ForwardKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.forward.ToString();
            if (menuPanel.GetChild(i).name == "BackwardKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.backward.ToString();
            if (menuPanel.GetChild(i).name == "LeftKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.left.ToString();
            if (menuPanel.GetChild(i).name == "RightKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.right.ToString();
            if (menuPanel.GetChild(i).name == "DriftKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.drift.ToString();
            if (menuPanel.GetChild(i).name == "RestartKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.restart.ToString();
            if (menuPanel.GetChild(i).name == "MenuKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.restart.ToString();
            if (menuPanel.GetChild(i).name == "ItemKey")
                menuPanel.GetChild(i).GetComponentInChildren<Text>().text = GameManager.GM.restart.ToString();


        }
    }

    // Update is called once per frame
    void Update()
    {
        
        if (Input.GetKeyDown(KeyCode.Escape) && !menuPanel.gameObject.activeSelf)
            menuPanel.gameObject.SetActive(true);
        else if (Input.GetKeyDown(KeyCode.Escape) && menuPanel.gameObject.activeSelf)
            menuPanel.gameObject.SetActive(false);
        
    }

    void OnGUI()
    {
        keyEvent = Event.current;

        if (keyEvent.isKey && waitingForKey)
        {
            newKey = keyEvent.keyCode;
            waitingForKey = false;
        }
    }

    public void StartAssignment(string keyName)
    {
        if (!waitingForKey)
        {
            StartCoroutine(AssignKey(keyName));
        }
    }

    public void SendText(Text text)
    {
        buttonText = text;
    }

    IEnumerator WaitForKey()
    {
        while (!keyEvent.isKey)
        {
            yield return null;
        }
    }

    public IEnumerator AssignKey(string keyName)
    {
        waitingForKey = true;

        yield return WaitForKey();

        switch (keyName)
        {
            case "forward":
                GameManager.GM.forward = newKey;
                Debug.Log("Neuer Key");
                buttonText.text = GameManager.GM.forward.ToString();
                PlayerPrefs.SetString("forwardKey", GameManager.GM.forward.ToString());
                break;
            case "backward":
                GameManager.GM.backward = newKey;
                buttonText.text = GameManager.GM.backward.ToString();
                PlayerPrefs.SetString("backwardKey", GameManager.GM.backward.ToString());
                break;
            case "left":
                GameManager.GM.left = newKey;
                buttonText.text = GameManager.GM.left.ToString();
                PlayerPrefs.SetString("leftKey", GameManager.GM.left.ToString());
                break;
            case "right":
                GameManager.GM.right = newKey;
                buttonText.text = GameManager.GM.right.ToString();
                PlayerPrefs.SetString("rightKey", GameManager.GM.right.ToString());
                break;
            case "drift":
                GameManager.GM.drift = newKey;
                buttonText.text = GameManager.GM.drift.ToString();
                PlayerPrefs.SetString("driftKey", GameManager.GM.drift.ToString());
                break;
            case "restart":
                GameManager.GM.restart = newKey;
                buttonText.text = GameManager.GM.restart.ToString();
                PlayerPrefs.SetString("restartKey", GameManager.GM.restart.ToString());
                break;
            case "menu":
                GameManager.GM.menu = newKey;
                buttonText.text = GameManager.GM.menu.ToString();
                PlayerPrefs.SetString("menuKey", GameManager.GM.menu.ToString());
                break;
            case "item":
                GameManager.GM.item = newKey;
                buttonText.text = GameManager.GM.item.ToString();
                PlayerPrefs.SetString("itemKey", GameManager.GM.item.ToString());
                break;
        }
        yield return null;
    }

    public void resetAllKeybinds()
    {
        PlayerPrefs.DeleteKey("forwardKey");
        PlayerPrefs.DeleteKey("backwardKey");
        PlayerPrefs.DeleteKey("leftKey");
        PlayerPrefs.DeleteKey("rightKey");
        PlayerPrefs.DeleteKey("driftKey");
        PlayerPrefs.DeleteKey("restartKey");
        PlayerPrefs.DeleteKey("menuKey");
        PlayerPrefs.DeleteKey("itemKey");
    }
}

and somehow they communicated yesterday and today they don’t want to
(I just changed on or two Variable names and added a bit not changed anything important)

still searching for a solution…