How do I change a slider value and have it show?

I know there is a lot of posts and such about this, but I have yet to find anything that solves my problem. I am trying to create an RGBA for my app, and I need to update the sliders with new values during certain events (such as key-presses), but I cannot do that, so the original color ends up staying. I am trying to make an app that emulates call of duty’s emblem editor, and I need to be able to grab the original layer’s colors and apply that to the sliders so that the color does not change when it is not needed(which is really annoying because then the colors end up staying the same from layer transition of A to B and so on). Lines 195-208 I am attempting to modify the slider’s values ( I tried Slider.value and Slider.normalizedValue so far).

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;



public enum MoveType{
    Move,
    Scale,
    Rotate
}

public class AppManager : MonoBehaviour {

    public List<Icon> layers;
    public List<GameObject> layerObj;
    public List<GameObject> icons;

    public GameObject badgeCenter;
    public GameObject editorPanel;

    public Camera appCam;

    public bool updateIcons = false;
    public bool updateUI = true;

    public int selectedSlot = 0;
    public int previousSlot;
    public int layerMax = 16;

    public float centerX;
    public float centerY;
    public float centerZ;

    public float sensitivity = 1f;

    public Text layersUI;
    public Text moveTypeUI;
    public Text selectedUI;
    public Text xUI;
    public Text yUI;
    public Text scaleXUI;
    public Text scaleYUI;
    public Text RotateUI;

    public Slider senseSlide;

    public Slider colorRUI;
    public Slider colorGUI;
    public Slider colorBUI;
    public Slider colorAUI;

    public MoveType moveType = MoveType.Move;

    void Start () {
        layers = new List<Icon>();
        icons = new List<GameObject> ();
        Object[] subIcons = Resources.LoadAll ("BadgeIcons", typeof(GameObject));
        foreach (GameObject g in subIcons) {
            icons.Add (g);
        }
        editorPanel.SetActive (false);
        layerMax -= 1;
        centerX = badgeCenter.transform.position.x;
        centerY = badgeCenter.transform.position.y;
        centerZ = badgeCenter.transform.position.z;
    }
   

    void Update () {
        IconControls ();
        UpdateIcon ();
        sensitivity = senseSlide.value;
        MoveTypeUIChange ();
    }
       
    public void AddLayer(){
        if (layers.Count <= layerMax) {
            layers.Add (new Icon (0, 0, 0, 10, 10, 0, 0, 255, 255, 255, 255));
            selectedSlot = layers.Count - 1;
            GameObject temp = Instantiate(icons[0]) as GameObject;
            layerObj.Add (temp);
            Vector3 tempScale = new Vector3 (10, 10, 0);
            layerObj [selectedSlot].transform.localScale += tempScale;
            layers [selectedSlot].scaleX = layerObj [selectedSlot].transform.localScale.x;
            layers [selectedSlot].scaleY = layerObj [selectedSlot].transform.localScale.y;
            layerObj [selectedSlot].transform.SetParent (badgeCenter.transform);
            layerObj [selectedSlot].transform.position = badgeCenter.transform.position;
            editorPanel.SetActive (true);
        }
    }

    public void DeleteLayer(){
        if (layers.Count >= 1) {
            updateUI = false;
            Destroy(layerObj[selectedSlot]);
            layers.RemoveAt (selectedSlot);
            layerObj.RemoveAt (selectedSlot);
            updateUI = true;
            selectedSlot -= 1;
            if (selectedSlot < 0) {
                selectedSlot = 0;
            }
        }
    }

    public void UpdateEditorPanel(){
        if (updateUI) {
            //UI
            layersUI.text = layers.Count.ToString ();
            //Values
            selectedUI.text = selectedSlot.ToString ();
            xUI.text = layers [selectedSlot].iconX.ToString ();
            yUI.text = layers [selectedSlot].iconY.ToString ();
            scaleXUI.text = layers [selectedSlot].scaleX.ToString ();
            scaleYUI.text = layers [selectedSlot].scaleY.ToString ();
            RotateUI.text = layers [selectedSlot].rotateX.ToString ();
        }
    }

    public void IconControls(){
        //INPUTS FOR MODIFYING SELECTED LAYER/SLOT
        if (layers.Count >= 1) {
            UpdateEditorPanel ();
            if (moveType == MoveType.Move) {
                if (Input.GetKey (KeyCode.UpArrow)) {
                    layers [selectedSlot].iconY += 1 * sensitivity;
                } else if (Input.GetKey (KeyCode.DownArrow)) {
                    layers [selectedSlot].iconY -= 1 * sensitivity;
                }
                if (Input.GetKey(KeyCode.RightArrow)){
                    layers[selectedSlot].iconX -= 1 * sensitivity;
                } else if (Input.GetKey(KeyCode.LeftArrow)){
                    layers[selectedSlot].iconX += 1 * sensitivity;
                }
            } else if (moveType == MoveType.Scale) {
                if (Input.GetKey (KeyCode.UpArrow)) {
                    layers [selectedSlot].scaleY += 1 * sensitivity;
                } else if (Input.GetKey (KeyCode.DownArrow)) {
                    layers [selectedSlot].scaleY -= 1 * sensitivity;
                }
                if (Input.GetKey(KeyCode.RightArrow)){
                    layers[selectedSlot].scaleX -= 1 * sensitivity;
                } else if (Input.GetKey(KeyCode.LeftArrow)){
                    layers[selectedSlot].scaleX += 1 * sensitivity;
                }
            } else if (moveType == MoveType.Rotate) {
                /*if (Input.GetKey (KeyCode.UpArrow)) {
                    layers [selectedSlot].rotateY += 1 * sensitivity;
                } else if (Input.GetKey (KeyCode.DownArrow)) {
                    layers [selectedSlot].rotateY -= 1 * sensitivity;
                }*/
                if (Input.GetKey(KeyCode.RightArrow)){
                    layers[selectedSlot].rotateX -= 1 * sensitivity;
                } else if (Input.GetKey(KeyCode.LeftArrow)){
                    layers[selectedSlot].rotateX += 1 * sensitivity;
                }
            }
            //UI TO LAYER SETTINGS
            layers[selectedSlot].colorR = (int)colorRUI.value;
            layers[selectedSlot].colorG = (int)colorGUI.value;
            layers[selectedSlot].colorB = (int)colorBUI.value;
            layers[selectedSlot].colorA = (int)colorAUI.value;
        }

        //=======================GENERAL KEY INPUTS=============================

        //Add Layer
        if (Input.GetKeyUp (KeyCode.Plus) || Input.GetKeyUp (KeyCode.KeypadPlus) || Input.GetKeyUp(KeyCode.Insert)) {
            AddLayer ();
        }

        //Delete Current Layer
        if (Input.GetKeyUp (KeyCode.Minus) || Input.GetKeyUp (KeyCode.Delete) || Input.GetKeyUp (KeyCode.KeypadMinus)) {
            DeleteLayer ();
        }

        //Change Transform Type
        if (Input.GetKeyUp (KeyCode.Alpha1)) {
            moveType = MoveType.Move;
        }
        if (Input.GetKeyUp (KeyCode.Alpha2)) {
            moveType = MoveType.Scale;
        }
        if (Input.GetKeyUp (KeyCode.Alpha3)) {
            moveType = MoveType.Rotate;
        }

        //Change Selected Layer/Slot
        if (Input.GetKeyUp (KeyCode.RightBracket)) {
            selectedSlot += 1;
            if (selectedSlot >= layers.Count) {
                selectedSlot -= 1;
                colorRUI.normalizedValue = (float)layers [selectedSlot].colorR;
                colorGUI.normalizedValue = (float)layers [selectedSlot].colorG;
                colorBUI.normalizedValue = (float)layers [selectedSlot].colorB;
                colorAUI.normalizedValue = (float)layers [selectedSlot].colorA;
            }
        }
        if (Input.GetKeyUp (KeyCode.LeftBracket)) {
            selectedSlot -= 1;
            if (selectedSlot < 0) {
                selectedSlot += 1;
                colorRUI.normalizedValue = (float)layers [selectedSlot].colorR;
                colorGUI.normalizedValue = (float)layers [selectedSlot].colorG;
                colorBUI.normalizedValue = (float)layers [selectedSlot].colorB;
                colorAUI.normalizedValue = (float)layers [selectedSlot].colorA;
            }
        }
    }

    public void UpdateIcon(){
        if (layers.Count >= 1) {
            if (moveType == MoveType.Move) {
                Vector3 tempLocation = new Vector3 (centerX + layers [selectedSlot].iconX, centerY + layers [selectedSlot].iconY, centerZ - (layerMax - selectedSlot));
                layerObj [selectedSlot].transform.position = tempLocation;
            }
            if (moveType == MoveType.Scale) {
                Vector3 tempScale = new Vector3 (layers [selectedSlot].scaleX, layers [selectedSlot].scaleY, 1);
                layerObj [selectedSlot].transform.localScale = tempScale;
            }
            if (moveType == MoveType.Rotate) {
                Vector3 tempRotate = new Vector3 (0,0, layers [selectedSlot].rotateX);
                layerObj [selectedSlot].transform.eulerAngles = tempRotate;
            }

            Renderer rend = layerObj [selectedSlot].GetComponent<Renderer>();
            rend.material.color = new Color32 (byte.Parse(layers [selectedSlot].colorR.ToString()), byte.Parse(layers [selectedSlot].colorG.ToString()), byte.Parse(layers [selectedSlot].colorB.ToString()), byte.Parse(layers [selectedSlot].colorA.ToString()));
        }
    }

    public void MoveTypeUIChange(){
        switch (moveType){
        case MoveType.Move:
            moveTypeUI.text = "[MOVE]";
            break;
        case MoveType.Scale:
            moveTypeUI.text = "[SCALE]";
            break;
        case MoveType.Rotate:
            moveTypeUI.text = "[ROTATE]";
            break;
        }
    }

    public void Quit(){
        Application.Quit ();
    }
}

As an edit/update, I have the RGB/A working fine, but it has this weird thing where I basically have to “white wash” it (move all the sliders to 255 then back down) for the colors to appear properly. I also figured out how to add the listener for ‘onvaluechanged’ for changing the icon colors, but I don’t know how to modify the values of the sliders for when switching to another layer.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;



public enum MoveType{
    Move,
    Scale,
    Rotate
}

public class AppManager : MonoBehaviour {

    public List<Icon> layers;
    public List<GameObject> layerObj;
    public List<GameObject> icons;

    public GameObject badgeCenter;
    public GameObject editorPanel;

    public Camera appCam;

    public bool updateIcons = false;
    public bool updateUI = true;

    public int selectedSlot = 0;
    public int previousSlot;
    public int layerMax = 16;

    public float centerX;
    public float centerY;
    public float centerZ;

    public float sensitivity = 1f;

    public Text layersUI;
    public Text moveTypeUI;
    public Text selectedUI;
    public Text xUI;
    public Text yUI;
    public Text scaleXUI;
    public Text scaleYUI;
    public Text RotateUI;

    public Slider senseSlide;

    public Slider colorR;
    public Slider colorG;
    public Slider colorB;
    public Slider colorA;

    public MoveType moveType = MoveType.Move;

    void Start () {
        layers = new List<Icon>();
        icons = new List<GameObject> ();
        Object[] subIcons = Resources.LoadAll ("BadgeIcons", typeof(GameObject));
        foreach (GameObject g in subIcons) {
            icons.Add (g);
        }
        layerMax -= 1;
        centerX = badgeCenter.transform.position.x;
        centerY = badgeCenter.transform.position.y;
        centerZ = badgeCenter.transform.position.z;
        Screen.SetResolution (824, 256, false);
        colorR.onValueChanged.AddListener (delegate {
            SetIconColorR ();
        });
        colorG.onValueChanged.AddListener (delegate {
            SetIconColorG ();
        });
        colorB.onValueChanged.AddListener (delegate {
            SetIconColorB ();
        });
        colorA.onValueChanged.AddListener (delegate {
            SetIconColorA ();
        });
    }
   

    void Update () {
        IconControls ();
        UpdateIcon ();
        sensitivity = senseSlide.value;
        MoveTypeUIChange ();
    }

    //ADD LAYER AND MOVE TO SAID LAYER
    public void AddLayer(){
        if (layers.Count <= layerMax) {
            layers.Add (new Icon (0, 0, 0, 10, 10, 0, 0, 255, 255, 255, 255));
            selectedSlot = layers.Count - 1;
            GameObject temp = Instantiate(icons[0]) as GameObject;
            layerObj.Add (temp);
            Vector3 tempScale = new Vector3 (10, 10, 0);
            layerObj [selectedSlot].transform.localScale += tempScale;
            layers [selectedSlot].scaleX = layerObj [selectedSlot].transform.localScale.x;
            layers [selectedSlot].scaleY = layerObj [selectedSlot].transform.localScale.y;
            layerObj [selectedSlot].transform.SetParent (badgeCenter.transform);
            layerObj [selectedSlot].transform.position = badgeCenter.transform.position;
            editorPanel.SetActive (true);
        }
    }

    //DELETE CURRENT LAYER
    public void DeleteLayer(){
        if (layers.Count >= 1) {
            updateUI = false;
            Destroy(layerObj[selectedSlot]);
            layers.RemoveAt (selectedSlot);
            layerObj.RemoveAt (selectedSlot);
            updateUI = true;
            selectedSlot -= 1;
            if (selectedSlot < 0) {
                selectedSlot = 0;
            }
        }
    }

    //UPDATE THE EDITOR PANEL
    public void UpdateEditorPanel(){
        if (updateUI) {
            //UI
            layersUI.text = layers.Count.ToString ();
            //Values
            selectedUI.text = selectedSlot.ToString ();
            xUI.text = layers [selectedSlot].iconX.ToString ("F1");
            yUI.text = layers [selectedSlot].iconY.ToString ("F1");
            scaleXUI.text = layers [selectedSlot].scaleX.ToString ("F1");
            scaleYUI.text = layers [selectedSlot].scaleY.ToString ("F1");
            RotateUI.text = layers [selectedSlot].rotateX.ToString ("F1");
        }
    }

    //KEYBOARD CONTROLS FOR APP
    public void IconControls(){
        //INPUTS FOR MODIFYING SELECTED LAYER/SLOT
        if (layers.Count >= 1) {
            UpdateEditorPanel ();
            if (moveType == MoveType.Move) {
                if (Input.GetKey (KeyCode.UpArrow)) {
                    layers [selectedSlot].iconY += 1 * sensitivity;
                } else if (Input.GetKey (KeyCode.DownArrow)) {
                    layers [selectedSlot].iconY -= 1 * sensitivity;
                }
                if (Input.GetKey(KeyCode.RightArrow)){
                    layers[selectedSlot].iconX -= 1 * sensitivity;
                } else if (Input.GetKey(KeyCode.LeftArrow)){
                    layers[selectedSlot].iconX += 1 * sensitivity;
                }
            } else if (moveType == MoveType.Scale) {
                if (Input.GetKey (KeyCode.UpArrow)) {
                    layers [selectedSlot].scaleY += 1 * sensitivity;
                } else if (Input.GetKey (KeyCode.DownArrow)) {
                    layers [selectedSlot].scaleY -= 1 * sensitivity;
                }
                if (Input.GetKey(KeyCode.RightArrow)){
                    layers[selectedSlot].scaleX -= 1 * sensitivity;
                } else if (Input.GetKey(KeyCode.LeftArrow)){
                    layers[selectedSlot].scaleX += 1 * sensitivity;
                }
            } else if (moveType == MoveType.Rotate) {
                /*if (Input.GetKey (KeyCode.UpArrow)) {
                    layers [selectedSlot].rotateY += 1 * sensitivity;
                } else if (Input.GetKey (KeyCode.DownArrow)) {
                    layers [selectedSlot].rotateY -= 1 * sensitivity;
                }*/
                if (Input.GetKey(KeyCode.RightArrow)){
                    layers[selectedSlot].rotateX -= 1 * sensitivity;
                } else if (Input.GetKey(KeyCode.LeftArrow)){
                    layers[selectedSlot].rotateX += 1 * sensitivity;
                }
            }
            //UI TO LAYER SETTINGS
        }

        //=======================GENERAL KEY INPUTS=============================

        //Add Layer
        if (Input.GetKeyUp (KeyCode.Plus) || Input.GetKeyUp (KeyCode.KeypadPlus) || Input.GetKeyUp(KeyCode.Insert)) {
            AddLayer ();
        }

        //Delete Current Layer
        if (Input.GetKeyUp (KeyCode.Minus) || Input.GetKeyUp (KeyCode.Delete) || Input.GetKeyUp (KeyCode.KeypadMinus)) {
            DeleteLayer ();
        }

        //Change Transform Type
        if (Input.GetKeyUp (KeyCode.Alpha1)) {
            moveType = MoveType.Move;
        }
        if (Input.GetKeyUp (KeyCode.Alpha2)) {
            moveType = MoveType.Scale;
        }
        if (Input.GetKeyUp (KeyCode.Alpha3)) {
            moveType = MoveType.Rotate;
        }

        //Change Selected Layer/Slot
        if (Input.GetKeyUp (KeyCode.RightBracket)) {
            selectedSlot += 1;
            if (selectedSlot >= layers.Count) {
                selectedSlot -= 1;
            }
        }
        if (Input.GetKeyUp (KeyCode.LeftBracket)) {
            selectedSlot -= 1;
            if (selectedSlot < 0) {
                selectedSlot += 1;
            }
        }
    }

    //UPDATE ORDER FOR ICONS
    public void UpdateIcon(){
        if (layers.Count >= 1) {
            if (moveType == MoveType.Move) {
                Vector3 tempLocation = new Vector3 (centerX + layers [selectedSlot].iconX, centerY + layers [selectedSlot].iconY, centerZ - (layerMax - selectedSlot));
                layerObj [selectedSlot].transform.position = tempLocation;
            }
            if (moveType == MoveType.Scale) {
                Vector3 tempScale = new Vector3 (layers [selectedSlot].scaleX, layers [selectedSlot].scaleY, 1);
                layerObj [selectedSlot].transform.localScale = tempScale;
            }
            if (moveType == MoveType.Rotate) {
                Vector3 tempRotate = new Vector3 (0,0, layers [selectedSlot].rotateX);
                layerObj [selectedSlot].transform.eulerAngles = tempRotate;
            }
        }
    }

    //LISTENERS FOR COLOR SLIDERS
    public void SetIconColorR(){
        layers [selectedSlot].colorR = (int)colorR.value;
        Renderer rend = layerObj [selectedSlot].GetComponent<Renderer> ();
        rend.material.color = new Color(colorR.value / 255.0f,rend.material.color.g,rend.material.color.b,rend.material.color.a);
    }
    public void SetIconColorG(){
        layers [selectedSlot].colorG = (int)colorG.value;
        Renderer rend = layerObj [selectedSlot].GetComponent<Renderer> ();
        rend.material.color = new Color(rend.material.color.r,colorG.value / 255.0f,rend.material.color.b,rend.material.color.a);
    }
    public void SetIconColorB(){
        layers [selectedSlot].colorB = (int)colorB.value;
        Renderer rend = layerObj [selectedSlot].GetComponent<Renderer> ();
        rend.material.color = new Color(rend.material.color.r,rend.material.color.g,colorB.value / 255.0f,rend.material.color.a);
    }
    public void SetIconColorA(){
        layers [selectedSlot].colorA = (int)colorA.value;
        Renderer rend = layerObj [selectedSlot].GetComponent<Renderer> ();
        rend.material.color = new Color(rend.material.color.r,rend.material.color.g,rend.material.color.b,colorA.value / 255.0f);
    }
    //UI FOR MOVE TYPE
    public void MoveTypeUIChange(){
        switch (moveType){
        case MoveType.Move:
            moveTypeUI.text = "[MOVE]";
            break;
        case MoveType.Scale:
            moveTypeUI.text = "[SCALE]";
            break;
        case MoveType.Rotate:
            moveTypeUI.text = "[ROTATE]";
            break;
        }
    }
    //QUIT
    public void Quit(){
        Application.Quit ();
    }
}