SetActive and prefabs not working

I have a scirpt where, on the end of each of my rounds, a Gameobject spawns and deletes within 5 seconds. this gameobject has a script to set the gui image for “round 1” inactive, and the gui image for “round 2” to active. When I press play, it doesn’t seem to work. However if I (with the game still running) go into the scene view and look, it’s all going as planned.
round 2 instead of round 1, the gameobject despawned etc.
What I can’t figure out is why the changes to my gui didn’t show up in my game view.

the only problem I could think of would be if there’s a problem with setting the prefab true, and if that doesn’t change in the scene view. I don’t know, some input would be very helpful at this point.

p.s the script is just a basic set one (public) gameobject to false and invoke to set the other active after a second.

Uhm. The first thing that I note is that you set the two objects as static. How do you initialize them? Why don’t you set as non static and initialize them right from the Inspector?
Anyway, supposing that they have been initialized elsewhere, and the problem is not there, I tried your code and, providing the fact that the two objects are set inactive before running the code, the thing works.
Maybe one other problem is that you put the code inside the Update() that runs at every frame: how many times will that code be called? Put it inside the Start() or in the Awake().
This code works to me:

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

    public GameObject RoundLast;
    public GameObject RoundNext;

    void Start()
    {
        RoundLast.SetActive(false);
        Invoke("Round_2", 3f);
    }

    public void Round_2()
    {
        RoundNext.SetActive(true);
    }
}

with a Canvas with two UI objects as children.

But why instantiate an object to run a code? Wouldn’t it be better to create a code and call it via a public method?

This should work anyway, creates a public method callable by outside code and uses the coroutines to wait.

public class NewBehaviourScript : MonoBehaviour {

    public void SwitchScene(GameObject round1, GameObject round2)
    {
        StartCoroutine(ChangeScene(round1, round2));
    }

    IEnumerator ChangeScene(GameObject round1, GameObject round2)
    {
        round1.SetActive(false);
        yield return new WaitForSeconds(3f);
        round2.SetActive(true);
    }

}