Delete Previously Instantiated Objects if a new one is created

I have a script that instantiates an object into the scene using a raycast from the camera.
I have a boolean on the instantiated object called isInstantiated, and what I want to do is when I click and there is another instantiated object with that boolean true, delete it when placing the new one.
The problem is that my script keeps losing the object reference when it checks for the other objects, and when I press play to override the pause, it doesn’t delete them anyway.

I feel like I am approaching this from the wrong direction and wanted to get a fresh perspective.

using UnityEngine;
using System.Collections;

public class RaycastInstance : MonoBehaviour {

    public GameObject jumppadPrefab;

    private RaycastHit hit;
    private Ray ray;

    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {

            Vector2 screenCenterPoint = new Vector2(Screen.width/2, Screen.height/2);
            ray = Camera.main.ScreenPointToRay(screenCenterPoint);

            if(Physics.Raycast(ray, out hit, Camera.main.farClipPlane))
            {
                Vector3 jumppadPosition = hit.point;

                Quaternion jumppadRotation = Quaternion.FromToRotation(-Vector3.down, hit.normal);

                GameObject pad = (GameObject)GameObject.Instantiate(jumppadPrefab, jumppadPosition, jumppadRotation);
                pad.gameObject.name = ("Jumppad");
                JumpPad jp = pad.GetComponent<JumpPad>();
                jp.isInstantiated = true;

                GameObject[] jps = FindObjectsOfType (typeof(JumpPad)) as GameObject[];

                foreach (GameObject jupa in jps)
                {
                    if (jupa.GetComponent<JumpPad>().isInstantiated)
                    {
                        Destroy (jupa);
                    }
                }
            }
        }
    }
}

Bump