Best way to detect if a prefab is already in the scene?

Hello again :).
I have got several scripts, like a music player script and a GameState Script, Which I would like to keep active throughout all scene’s.
I Have managed to do this with “don’t destroy on load”.
My problem is when I get back to the main menu - they re-instantiate again with scene…
I have tried checking for objects with the same tag - and deleting the game object if another is found already in place - yet it’s not working…
Somehow I feel like is stupidly easy…
This is what I’ve got at the moment :

GameObject thisDup = GameObject.FindGameObjectWithTag("System");
if(thisDup)
{
    Destroy(gameObject);
}

Hmm try this out:

    void Awake() 
	{
        public GameObject[] duplicates = GameObject.FindGameObjectsWithTag("System");
        foreach (GameObject gameObject in duplicates)
	    {
            Destroy(gameObject);
        }
    }

Might be some errors, threw it together quick in notepad