Player moves slower when going over a specific part of a flat object i made in probuilder

The title pretty much sums up my problem. I’ve just started using probuilder and ran into this problem with my first creation. I thought I had messed things up as it was pretty sloppy so I acquired progrids and I’ve just made something else. This time there’s nothing visibly wrong with it, but I’m getting the same problem.

When my player (a ball) rolls over a specific part of my floor, it slows down. When looking at the scene in the wireframe mode this area is confined to a single triangle. If the player rolls around anywhere within this space, it slows down. Immediately upon exiting it returns to normal speed. It makes no sense. It’s completely flat. Why is this happening?

EDIT: This is becoming more and more of an issue. This is happening everywhere and no matter what I do I can’t seem to fix it.

Okay, I’ve discovered that the problem lies with my movement script. If anyone is able to shed some light that would be great.

public float speed = 50f;
    public Vector3 MoveVector;
    
    public float jumpForce = 600f;
    public float doubleJumpForce = 500f;
    public float fallMultiplier = 3f;
    public float lowJumpMultiplier = 2f;
    public bool onGround = true;
    public bool canDoubleJump = true;

    private Rigidbody rb;
    private Transform camTransform;

    void Awake()
    {
        rb = GetComponent<Rigidbody>();
    }

    private void FixedUpdate()
    {
        MoveVector = PoolInput();
        MoveVector = RotateWithView();
        Move();

        //start of jump mechanic

        if (rb.velocity.y < 0)
        {
            rb.velocity += Vector3.up * Physics.gravity.y * (fallMultiplier * 1) * Time.deltaTime;
        }
        else if (rb.velocity.y > 0 && !Input.GetButton("Jump"))
        {
            rb.velocity += Vector3.up * Physics.gravity.y * (lowJumpMultiplier * 1) * Time.deltaTime;
        }

        RaycastHit hit;
        Vector3 physicsCentre = this.transform.position +
            this.GetComponent<SphereCollider>().center;

        Debug.DrawRay(physicsCentre, Vector3.down, Color.red, 1.1f);
        if (Physics.Raycast(physicsCentre,Vector3.down, out hit, 1f))
        {
            print(hit.transform.name);

            if (hit.transform.gameObject.tag != "Player")
            {
                onGround = true;
            }
        }
        else
        {
            onGround = false;
        }
        Debug.Log(onGround);

        if (Input.GetKey("joystick button 2") && !onGround && canDoubleJump)
        {
            this.GetComponent<Rigidbody>().AddForce(Vector3.up * doubleJumpForce);
            canDoubleJump = false;
            Debug.Log("Double Jump!");
        }
        if (Input.GetKey("joystick button 2") && onGround)
        {
            this.GetComponent<Rigidbody>().AddForce(Vector3.up * jumpForce);
            canDoubleJump = true;
            Debug.Log("Jump!");
        }
        //end of jump mechanic
    }

    private void Move()
    {
        rb.AddForce((MoveVector * speed));
    }

    private Vector3 PoolInput()
    {
        Vector3 direction = Vector3.zero;

        direction.x = Input.GetAxis("Horizontal");
        direction.z = Input.GetAxis("Vertical");

        if (direction.magnitude > 1)
            direction.Normalize();

        return direction;
    }

    private Vector3 RotateWithView()
    {
        if(camTransform != null)
        {
            Vector3 dir = camTransform.TransformDirection(MoveVector);
            dir.Set(dir.x, 0, dir.z);
            return dir.normalized * MoveVector.magnitude;
        }
        else
        {
            camTransform = Camera.main.transform;
            return MoveVector;
        }
    }

    
}