Instanced Property Shader Error, where did I go wrong?

Shader "Unlit/HPBar"
{
    Properties
    {

        _Health("Health", Range(0, 1)) = 0
        _LowColor("Low Health Color", Color) = (1,0,0,1)
        _HighColor("High Health Color", Color) = (0,1,0,1)
        _BackgroundColor("Background Color", Color) = (1,1,1,1)
        _FrameColor("Frame Color", Color) = (1,1,1,1)
        _Outline("Frame Thickness", Range(0, 5)) = 1

    }

        SubShader
    {
        Tags
        {
            "RenderType" = "Opaque"
            "IgnoreProjector" = "True"
            "RenderPipeline" = "UniversalPipeline"
        }

        HLSLINCLUDE
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
        #pragma vertex vert
        #pragma fragment frag
        ENDHLSL

        Pass
        {
            Name "Unlit"

            Tags
            {
                "LightMode" = "UniversalForward"
            }

            HLSLPROGRAM

            #pragma multi_compile_instancing
            #pragma instancing_options renderinglayer

            struct Attributes
            {
                float4 positionOS : POSITION;
                float3 normalOS     : NORMAL;
                float2 uv           : TEXCOORD0;
                float4 color        : COLOR;
                UNITY_VERTEX_INPUT_INSTANCE_ID
            };

            struct Varyings
            {
                float2 uv           : TEXCOORD0;
                float4 positionHCS  : SV_POSITION;
                float4 color        : COLOR;
            };

            CBUFFER_START(UnityPerMaterial)
            float4 _LowColor;
            float4 _HighColor;
            float4 _BackgroundColor;
            float4 _FrameColor;
            float _Outline;
            CBUFFER_END

            UNITY_INSTANCING_BUFFER_START(Props)
                UNITY_DEFINE_INSTANCED_PROP(float, _Health)
            UNITY_INSTANCING_BUFFER_END(Props)


            Varyings vert(Attributes IN)
            {
                Varyings OUT;
                UNITY_SETUP_INSTANCE_ID(IN);
                UNITY_TRANSFER_INSTANCE_ID(IN, OUT);
                OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz);
                OUT.uv = IN.uv;
                OUT.color = IN.color;

                if (IN.color.g > 0.5 && IN.color.r < 0.5 && IN.color.b < 0.5)
                {
                    IN.positionOS.xyz += IN.normalOS.xyz * _Outline;
                    VertexPositionInputs vertexInput = GetVertexPositionInputs(IN.positionOS.xyz);
                    OUT.positionHCS = vertexInput.positionCS;
                }
                return OUT;
            }

            half4 frag(Varyings IN) : SV_Target
            {
                UNITY_SETUP_INSTANCE_ID(IN);
                if (IN.color.g > 0.5 && IN.color.r < 0.5 && IN.color.b < 0.5)
                    {
                        return _FrameColor;
                    }

                if (IN.uv.x > UNITY_ACCESS_INSTANCED_PROP(Props, _Health))
                    {
                        return _BackgroundColor;
                    }

                return lerp(_LowColor, _HighColor, UNITY_ACCESS_INSTANCED_PROP(Props, _Health));

            }
            ENDHLSL
        }

        Pass
        {
            Name "DepthOnly"
            Tags
            {
                "LightMode" = "DepthOnly"
            }

            ZWrite On
            ColorMask 0

            HLSLPROGRAM
            struct Attributes
            {
                float4 positionOS   : POSITION;
                float3 normalOS     : NORMAL;
                float2 uv           : TEXCOORD0;
                float4 color        : COLOR;
            };

            struct Varyings
            {
                float2 uv           : TEXCOORD0;
                float4 positionHCS  : SV_POSITION;
                float4 color        : COLOR;
            };

            CBUFFER_START(UnityPerMaterial)
            float4 _LowColor;
            float4 _HighColor;
            float4 _BackgroundColor;
            float4 _FrameColor;
            float _Outline;
            CBUFFER_END

            Varyings vert(Attributes IN)
            {
                Varyings OUT;
                OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz);
                OUT.uv = IN.uv;
                OUT.color = IN.color;

                if (IN.color.g > 0.5 && IN.color.r < 0.5 && IN.color.b < 0.5)
                {
                    IN.positionOS.xyz += IN.normalOS.xyz * _Outline;
                    VertexPositionInputs vertexInput = GetVertexPositionInputs(IN.positionOS.xyz);
                    OUT.positionHCS = vertexInput.positionCS;
                }

                return OUT;
            }

            float4 frag (Varyings IN) : SV_Target
            {
                return 0;
            }

            ENDHLSL
        }

            Pass
            {
                Name "DepthNormals"
                Tags
                {
                    "LightMode" = "DepthNormals"
                }

                ZWrite On
                ColorMask 0

                HLSLPROGRAM
                struct Attributes
                {
                    float4 positionOS   : POSITION;
                    float3 normalOS     : NORMAL;
                    float2 uv           : TEXCOORD0;
                    float4 color        : COLOR;
                };

                struct Varyings
                {
                    float2 uv           : TEXCOORD0;
                    float4 positionHCS  : SV_POSITION;
                    float4 color        : COLOR;
                };

                CBUFFER_START(UnityPerMaterial)
                float4 _LowColor;
                float4 _HighColor;
                float4 _BackgroundColor;
                float4 _FrameColor;
                float _Outline;
                CBUFFER_END

                Varyings vert(Attributes IN)
                {
                    Varyings OUT;
                    OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz);
                    OUT.color = IN.color;
                    OUT.uv = IN.uv;

                     if (IN.color.g > 0.5 && IN.color.r < 0.5 && IN.color.b < 0.5)
                     {
                         IN.positionOS.xyz += IN.normalOS.xyz * _Outline;
                         VertexPositionInputs vertexInput = GetVertexPositionInputs(IN.positionOS.xyz);
                         OUT.positionHCS = vertexInput.positionCS;
                     }
                     return OUT;
                 }

                 float4 frag(Varyings IN) : SV_Target
                 {
                     return 0;
                 }

                 ENDHLSL
            }
    }
}

All I need is _Health to be instanced, I haven’t done this before it’s my first HLSL shader outside of NodeBasedEditors