Game Over Screen Won't Work

So I was adding a Quit Button to my Main Menu Scene, and after I added the button(I still have to actually make it quit) everything got screwed up. I played the game but my colliders were not working, then I noticed I had the main menu scene set to an old scene that I had, so I changed it to my newest scene and set it to the build settings. The problem was fixed, but now my Game Over Screen wont pop up after I die. It just restarts the game to the main menu, I re added the Game Over Scene to the build settings, but now it just restarts the game from the start and I play it over and over again. When I open the Game Over Scene by itself and press restart, it does nothing. I would leave it like this but now nobody will know what their score was, so please help.

UPDATE: I have two GameOver Scenes in the build settings. There both the same scenes but ones on top of the Main Menu Scene, and one is below the Game scene. When I uncheck the one below the Game Scene and check the top one, the game restarts right away after I die. When I do the opposite, it takes me to the Main Menu Screen after I die. I think it has to do with the placing of the scenes in the build.

public class GameOverScript : MonoBehaviour {

	int score = 0;

	void Start () {
		score = PlayerPrefs.GetInt("Score");
	}

	void OnGUI()
	{
		GUI.Label (new Rect (Screen.width / 2 - 40, 50, 80, 30), "GAME OVER");

		GUI.Label (new Rect (Screen.width / 2 - 40, 300, 80, 30), "Score: " + score);
        if(GUI.Button(new Rect(Screen.width	/ 2 - 30, 350, 60, 30), "Retry?"))
        {
            Application.LoadLevel(0);
        }
    }

}

public class MainMenu : MonoBehaviour {

	public Texture backgroundTexture;

	public float guiPlacementY1;
	public float guiPlacementY2;
	public float guiPlacementY3;

	public float guiPlacementX1;
	public float guiPlacementX2;
	public float guiPlacementX3;

	public bool Options;


	void OnGUI(){
		// Display our background texture
		GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),backgroundTexture);


		// Display our Buttons
		if (GUI.Button (new Rect (Screen.width * guiPlacementX1, Screen.height * guiPlacementY1, Screen.width * .5f, Screen.height * .1f), "Play Game")) {
			print ("Ckicked Play Game"); Application.LoadLevel("23.6 Scene");

		}
		if (GUI.Button (new Rect (Screen.width * guiPlacementX2, Screen.height * guiPlacementY2, Screen.width * .5f, Screen.height * .1f), "Options")) {
			print("Clicked Play Game"); Options = true;
		}
		
		if (Options) {
			
			//do something when we're viewing options

		}
		if (GUI.Button (new Rect (Screen.width * guiPlacementX3, Screen.height * guiPlacementY3, Screen.width * .5f, Screen.height * .1f), "Quit")) {
			print("Clicked Play Game");

		

	    }
	}
  }

“I think it has to do with the placing of the scenes in the build.” - yes, because you’re calling Application.LoadLevel(0), which will always load the first level listed in your build settings. Did you read the manual?

Unity - Scripting API: Application.LoadLevel