There seems to be some syntax issues and also I would suggest to use `bash` instead if using `sh` shell.

Try the below code and see if this works properly. 
(EDIT - Put shebang on first line to accept as answer)

    sh label: 'Stop and Remove Old Docker Container', script: '''#!/usr/bin/env bash
                    docker ps -a
                    echo $APP_CONTAINER_NAME

                    docker ps -a | grep $APP_CONTAINER_NAME || true
                    status=("${PIPESTATUS[@]}")
                    DOCKERCODE=${status[0]}
                    GREPCODE=${status[1]}
                    echo "Docker Command Code: $DOCKERCODE"

                    echo "Grep Command Code: $GREPCODE"

                    if [ $DOCKERCODE -eq 0 ]; then
                        docker stop $APP_CONTAINER_NAME
                        docker rm $APP_CONTAINER_NAME
                    else
                        echo "WARNING: Docker command was empty or had an error"
                    fi
                '''

In the above code, I have made changes in the way you were trying to get output of command `docker ps -a | grep $APP_CONTAINER_NAME || true` using `PIPESTATUS` variable. 
Since `PIPESTATUS` is a special variable, it's value gets updated after every command, so you were not getting any value of `${PIPESTATUS[1]}`

The other change I have made is fixing the syntax issue in the line `if [ $DOCKERCODE -eq 0 ] then;` to `if [ $DOCKERCODE -eq 0 ]; then`

You can test out the code further.