unity – Screen boundaries seem randomly placed

I have a strange issue in which the characters boundaries work fine, however are placed at four seemingly random edges outside of the game view as a result of (I’m assuming) my player boundaries script. The player actually stopping at the edges is working fine, the issue is just with the placement of those boundaries. I’m following a tutorial, and the code is pretty much just copy/pasted, so I’m not sure what’s going wrong.

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

public class PSBoundariesOrthographic : MonoBehaviour {
    public Camera MainCamera;
    private Vector2 screenBounds;
    private float objectWidth;
    private float objectHeight;

    // Use this for initialization
    void Start () {
        screenBounds = MainCamera.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height, MainCamera.transform.position.z));
        objectWidth = transform.GetComponent<SpriteRenderer>().bounds.extents.x; //extents = size of width / 2
        objectHeight = transform.GetComponent<SpriteRenderer>().bounds.extents.y; //extents = size of height / 2
    }

    // Update is called once per frame
    void LateUpdate(){
        Vector3 viewPos = transform.position;
        viewPos.x = Mathf.Clamp(viewPos.x, screenBounds.x * -1 + objectWidth, screenBounds.x - objectWidth);
        viewPos.y = Mathf.Clamp(viewPos.y, screenBounds.y * -1 + objectHeight, screenBounds.y - objectHeight);
        transform.position = viewPos;
    }
}

Above is my boundaries script

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

public class controlPlayer : MonoBehaviour
{
    public GameObject player;
    public float speed = 1000f;
    public GameObject left;

    bool _isLeftHeld;
    bool _isRightHeld;

    public void Update()
    {
        var movement = Input.GetAxis("Horizontal");

        // Ignore cases where neither/both left and right are held at once.
        if (_isRightHeld ^ _isLeftHeld)
        {
            // Override the movement input from the keyboard/joypad.
            if (_isRightHeld) movement = 1f;
            else movement = -1f;
        }

        transform.position += new Vector3(movement, 0, 0) * Time.deltaTime * speed;
    }

    public void HoldRight(bool held)
    {
        _isRightHeld = held;
        _isLeftHeld = false;
    }

    public void HoldLeft(bool held)
    {
        _isLeftHeld = held;
        _isRightHeld = false;
    }
}

My player controller. I should add that hold left and hold right are controlled by two buttons placed accordingly on the screen.