Help with shader

So, I made a shader that takes 8 tiles and tile them on a sphere. I also added displacement map (not finished, only on two out of 8 tiles) but there is a problem. As I add offset to the mainTex, the displacement maps are not following. They stay the same. So if anybody could help that would be great.
You can see that I tried adding “-float2(x,y)” but it made no difference.

Shader "Tessellation Sample" {
        Properties {
            _Tess ("Tessellation", Range(1,32)) = 4
            _NormalMap ("Normalmap", 2D) = "bump" {}
            _Displacement ("Displacement", Range(0, 0.1)) = 0.03
            _Color ("Color", color) = (1,1,1,0)
            _SpecColor ("Spec color", color) = (0.5,0.5,0.5,0.5)
                _MainTex0 ("Base (RGB)", 2D) = "white" {}

        _MainTex1 ("Base1 (RGB)", 2D) = "white" {}
        _MainTex2 ("Base2 (RGB)", 2D) = "white" {}
        _MainTex3 ("Base3 (RGB)", 2D) = "white" {}
        _MainTex4 ("Base4 (RGB)", 2D) = "white" {}
        _MainTex5 ("Base5 (RGB)", 2D) = "white" {}
        _MainTex6 ("Base6 (RGB)", 2D) = "white" {}
        _MainTex7 ("Base7 (RGB)", 2D) = "white" {}
        _DispTex0 ("Disp Texture", 2D) = "gray" {}
        _DispTex1 ("Disp1 Texture", 2D) = "gray" {}
        _DispTex2 ("Disp2 Texture", 2D) = "gray" {}
        _DispTex3 ("Disp3 Texture", 2D) = "gray" {}
        _DispTex4 ("Disp4 Texture", 2D) = "gray" {}
        _DispTex5 ("Disp5 Texture", 2D) = "gray" {}
        _DispTex6 ("Disp6 Texture", 2D) = "gray" {}
        _DispTex7 ("Disp7 Texture", 2D) = "gray" {}
        }
        SubShader {
            Tags { "RenderType"="Opaque" }
            LOD 300
        
            CGPROGRAM
            #pragma surface surf BlinnPhong addshadow fullforwardshadows vertex:disp tessellate:tessFixed nolightmap
            #pragma target 5.0
        sampler2D _MainTex0;
        sampler2D _MainTex1;
        sampler2D _MainTex2;
        sampler2D _MainTex3;
        sampler2D _MainTex4;
        sampler2D _MainTex5;
        sampler2D _MainTex6;
        sampler2D _MainTex7;
    
        sampler2D _DispTex0;
        sampler2D _DispTex1;
        sampler2D _DispTex2;
        sampler2D _DispTex3;
        sampler2D _DispTex4;
        sampler2D _DispTex5;
        sampler2D _DispTex6;
        sampler2D _DispTex7;

struct Input {
                float2 uv_MainTex0;
            };
            struct appdata {
                float4 vertex : POSITION;
                float4 tangent : TANGENT;
                float3 normal : NORMAL;
                float2 texcoord : TEXCOORD0;
            };

            float _Tess;

          float4 tessFixed()
            {
                return _Tess;
            }
            float _Displacement;
//////////////////////////////////This is where displacement is added
            void disp (inout appdata v)
            {
     
                float2 texcoord2=v.texcoord.xy*float2(4,2);
        
                float d0 = tex2Dlod(_DispTex0, float4(texcoord2-float2(1,0),0,0)).r * _Displacement;
                if(texcoord2.x<1){
                if(texcoord2.x>0){
                if(texcoord2.y>1){

                v.vertex.xyz -= v.normal * d0;

                }
                }
                }
                float d1 = tex2Dlod(_DispTex1, float4(texcoord2-float2(2,0),0,0)).r * _Displacement;

                  if(texcoord2.x<2){
                if(texcoord2.x>=1){
                if(texcoord2.y>1){

                v.vertex.xyz -= v.normal * d1;

                }
                }
                }
            
                else
                v.vertex.xyz +=0;


            }
         

            float2 dbl_uv_MainTex0;
/////////////////////////////////////////////////// below is not important, it works.

OK, I got it, the thing was that I needed to make a public variable and to put it as offset and then with external script I increased that variable as the MainTex offset increased. Now it works very nice.

Since I got the script that I used to start for free, I will put here the final result that works (and hopefully for others also).
For example I use it for Moon map and displacement map.

you need to change _x and _y with external script 4 times as much as MainTex0 offset.

Shader "Tileable with displacement" {
        Properties {
            _Tess ("Tessellation", Range(1,64)) = 4
            _NormalMap ("Normalmap", 2D) = "bump" {}
            _Displacement ("Displacement", Range(0, 0.1)) = 0.03
            _Color ("Color", color) = (1,1,1,0)
            _SpecColor ("Spec color", color) = (0.5,0.5,0.5,0.5)
        _MainTex0 ("Base (RGB)", 2D) = "white" {}
        _MainTex1 ("Base1 (RGB)", 2D) = "white" {}
        _MainTex2 ("Base2 (RGB)", 2D) = "white" {}
        _MainTex3 ("Base3 (RGB)", 2D) = "white" {}
        _MainTex4 ("Base4 (RGB)", 2D) = "white" {}
        _MainTex5 ("Base5 (RGB)", 2D) = "white" {}
        _MainTex6 ("Base6 (RGB)", 2D) = "white" {}
        _MainTex7 ("Base7 (RGB)", 2D) = "white" {}
        _DispTex0 ("Disp Texture", 2D) = "gray" {}
        _DispTex1 ("Disp1 Texture", 2D) = "gray" {}
        _DispTex2 ("Disp2 Texture", 2D) = "gray" {}
        _DispTex3 ("Disp3 Texture", 2D) = "gray" {}
        _DispTex4 ("Disp4 Texture", 2D) = "gray" {}
        _DispTex5 ("Disp5 Texture", 2D) = "gray" {}
        _DispTex6 ("Disp6 Texture", 2D) = "gray" {}
        _DispTex7 ("Disp7 Texture", 2D) = "gray" {}
        _x("x",Range(-4,4))=0
        _y("y",Range(-1,1))=0
        }
        SubShader {
            Tags { "RenderType"="Opaque" }
            LOD 300
       
            CGPROGRAM
            #pragma surface surf BlinnPhong addshadow fullforwardshadows vertex:disp tessellate:tessFixed nolightmap
            #pragma target 5.0
            sampler2D _MainTex0;
        //Added three more 2D samplers, one for each additional texture
        sampler2D _MainTex1;
        sampler2D _MainTex2;
        sampler2D _MainTex3;
        sampler2D _MainTex4;
        sampler2D _MainTex5;
        sampler2D _MainTex6;
        sampler2D _MainTex7;
   
        sampler2D _DispTex0;
        sampler2D _DispTex1;
        sampler2D _DispTex2;
        sampler2D _DispTex3;
        sampler2D _DispTex4;
        sampler2D _DispTex5;
        sampler2D _DispTex6;
        sampler2D _DispTex7;

struct Input {
                float2 uv_MainTex0;
            };
            struct appdata {
                float4 vertex : POSITION;
                float4 tangent : TANGENT;
                float3 normal : NORMAL;
                float2 texcoord : TEXCOORD0;
            };

            float _Tess;

          float4 tessFixed()
            {
                return _Tess;
            }
            float _Displacement;
            float _x;
            float _y;

            void disp (inout appdata v)
            {
    
       
                float2 texcoord2=v.texcoord.xy*float2(4,2);
       
                float d0 = tex2Dlod(_DispTex0, float4(texcoord2-float2(_x,_y),0,0)).r * _Displacement;
                float d1 = tex2Dlod(_DispTex1, float4(texcoord2-float2(_x,_y),0,0)).r * _Displacement;
                float d2 = tex2Dlod(_DispTex2, float4(texcoord2-float2(_x,_y),0,0)).r * _Displacement;
                float d3 = tex2Dlod(_DispTex3, float4(texcoord2-float2(_x,_y),0,0)).r * _Displacement;
                     if((texcoord2-float2(_x,_y)).x>0&&(texcoord2-float2(_x,_y)).x<1&&texcoord2.y>1){
                d1=d2=d3=0;
                v.vertex.xyz -= v.normal * (d0);
                }
               
                if((texcoord2-float2(_x,_y)).x>1&&(texcoord2-float2(_x,_y)).x<2&&texcoord2.y>1){
                d0=d2=d3=0;
                v.vertex.xyz -= v.normal * (d1);
                }
           
                if((texcoord2-float2(_x,_y)).x>2&&(texcoord2-float2(_x,_y)).x<3&&texcoord2.y>1){
                d0=d1=d3=0;
                v.vertex.xyz -= v.normal * (d2);
                }
                if((texcoord2-float2(_x,_y)).x>3&&(texcoord2-float2(_x,_y)).x<4&&texcoord2.y>1){
                d0=d1=d2=0;
                v.vertex.xyz -= v.normal * (d3);
                }
           
           
           
                  if((texcoord2-float2(_x,_y)).x>-1&&(texcoord2-float2(_x,_y)).x<0&&texcoord2.y>1){
                d0=d1=d2=0;
                v.vertex.xyz -= v.normal * (d3);
                }
                if((texcoord2-float2(_x,_y)).x>-2&&(texcoord2-float2(_x,_y)).x<-1&&texcoord2.y>1){
                d0=d1=d3=0;
                v.vertex.xyz -= v.normal * (d2);
                }
                 if((texcoord2-float2(_x,_y)).x>-3&&(texcoord2-float2(_x,_y)).x<-2&&texcoord2.y>1){
                d0=d2=d3=0;
                v.vertex.xyz -= v.normal * (d1);
                }
                 if((texcoord2-float2(_x,_y)).x>-4&&(texcoord2-float2(_x,_y)).x<-3&&texcoord2.y>1){
                d1=d2=d3=0;
                v.vertex.xyz -= v.normal * (d0);
                }
           
           
                 if((texcoord2-float2(_x,_y)).x>7&&(texcoord2-float2(_x,_y)).x<8&&texcoord2.y>1){
                d0=d1=d2=0;
                v.vertex.xyz -= v.normal * (d3);
                }
                if((texcoord2-float2(_x,_y)).x>6&&(texcoord2-float2(_x,_y)).x<7&&texcoord2.y>1){
                d0=d1=d3=0;
                v.vertex.xyz -= v.normal * (d2);
                }
                 if((texcoord2-float2(_x,_y)).x>5&&(texcoord2-float2(_x,_y)).x<6&&texcoord2.y>1){
                d0=d2=d3=0;
                v.vertex.xyz -= v.normal * (d1);
                }
                 if((texcoord2-float2(_x,_y)).x>4&&(texcoord2-float2(_x,_y)).x<5&&texcoord2.y>1){
                d1=d2=d3=0;
                v.vertex.xyz -= v.normal * (d0);
                }
           
           
                  if(texcoord2.y<1){
                d1=d0=d2=d3=0;
                }


            }
        

            float2 dbl_uv_MainTex0;

        void surf (Input IN, inout SurfaceOutput o) {

            //multiply the current vertex texture coordinate by two
            dbl_uv_MainTex0 = IN.uv_MainTex0*float2(4,2);

            //add an offset to the texture coordinates for each of the input textures
            half4 c0 = tex2D (_MainTex0, dbl_uv_MainTex0-float2(0,1));
            half4 c1 = tex2D (_MainTex1, dbl_uv_MainTex0-float2(1,1));
            half4 c2 = tex2D (_MainTex2, dbl_uv_MainTex0-float2(2,1));
            half4 c3 = tex2D (_MainTex3, dbl_uv_MainTex0-float2(3,1));
       
            half4 c4 = tex2D (_MainTex4, dbl_uv_MainTex0);
            half4 c5 = tex2D (_MainTex5, dbl_uv_MainTex0-float2(1,0));
            half4 c6 = tex2D (_MainTex6, dbl_uv_MainTex0-float2(2,0));
            half4 c7 = tex2D (_MainTex7, dbl_uv_MainTex0-float2(3,0));
   
            if(IN.uv_MainTex0.x <1){
            if(IN.uv_MainTex0.x >= 0.75)
            {
                if(IN.uv_MainTex0.y >=0.5){
                    c0.rgb = c1.rgb = c2.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb =0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c5.rgb=c6.rgb=0;
                }
            }
            }
            if(IN.uv_MainTex0.x > 0.5){
                if(IN.uv_MainTex0.x < 0.75)
            {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c3.rgb = c1.rgb = c0.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c5.rgb=c7.rgb=0;
                }
       
            }
            }
            if(IN.uv_MainTex0.x >0.25){
                if(IN.uv_MainTex0.x < 0.5)
                {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c3.rgb = c2.rgb = c0.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c6.rgb=c7.rgb=0;
                }
       
                }
                }
                if(IN.uv_MainTex0.x <= 0.25){
                if(IN.uv_MainTex0.x >0.0)
                {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c3.rgb = c2.rgb = c1.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
           
                }
           
                if(IN.uv_MainTex0.y <0.5){
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c5.rgb=c6.rgb=c7.rgb=0;
                }
       
           
                }
           
                }
       
                if(IN.uv_MainTex0.x >1){
                if(IN.uv_MainTex0.x <1.25)
                {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c3.rgb = c2.rgb = c1.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
                c0 = tex2D (_MainTex0, dbl_uv_MainTex0-float2(4,1));
                }
           
                if(IN.uv_MainTex0.y <0.5){
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c5.rgb=c6.rgb=c7.rgb=0;
                c4 = tex2D (_MainTex4, dbl_uv_MainTex0-float2(4,0));
                }
                }
                }
                    if(IN.uv_MainTex0.x >1.25){
                if(IN.uv_MainTex0.x < 1.5)
            {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c1 = tex2D (_MainTex1, dbl_uv_MainTex0-float2(5,1));
                c3.rgb = c2.rgb = c0.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c5 = tex2D (_MainTex5, dbl_uv_MainTex0-float2(5,0));
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c6.rgb=c7.rgb=0;
                }
       
                }
                }
                if(IN.uv_MainTex0.x <2){
            if(IN.uv_MainTex0.x >= 1.75)
            {
                if(IN.uv_MainTex0.y >=0.5){
                c3 = tex2D (_MainTex3, dbl_uv_MainTex0-float2(7,1));
                    c0.rgb = c1.rgb = c2.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb =0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c7 = tex2D (_MainTex7, dbl_uv_MainTex0-float2(7,0));
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c5.rgb=c6.rgb=0;
                }
            }
            }
            if(IN.uv_MainTex0.x > 1.5){
                if(IN.uv_MainTex0.x < 1.75)
            {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c2 = tex2D (_MainTex2, dbl_uv_MainTex0-float2(6,1));
                c3.rgb = c1.rgb = c0.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c6 = tex2D (_MainTex6, dbl_uv_MainTex0-float2(6,0));
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c5.rgb=c7.rgb=0;
                }
       
            }
            }
                        if(IN.uv_MainTex0.x <0){
            if(IN.uv_MainTex0.x >= -0.25)
            {
                if(IN.uv_MainTex0.y >=0.5){
                c3 = tex2D (_MainTex3, dbl_uv_MainTex0-float2(-1,1));
                    c0.rgb = c1.rgb = c2.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb =0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c7 = tex2D (_MainTex7, dbl_uv_MainTex0-float2(-1,0));
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c5.rgb=c6.rgb=0;
                }
            }
            }
       
                if(IN.uv_MainTex0.x < -0.25){
                if(IN.uv_MainTex0.x > -0.5)
            {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c2 = tex2D (_MainTex2, dbl_uv_MainTex0-float2(-2,1));
                c3.rgb = c1.rgb = c0.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c6 = tex2D (_MainTex6, dbl_uv_MainTex0-float2(-2,0));
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c5.rgb=c7.rgb=0;
                }
       
            }
            }
                if(IN.uv_MainTex0.x >-0.75){
                if(IN.uv_MainTex0.x < -0.5)
            {
           
                if(IN.uv_MainTex0.y >= 0.5){
                c3.rgb = c2.rgb = c0.rgb =c4.rgb=c5.rgb=c6.rgb=c7.rgb= 0;
                }
                if(IN.uv_MainTex0.y <0.5){
                c0.rgb=c1.rgb=c2.rgb=c3.rgb=c4.rgb=c6.rgb=c7.rgb=0;
                }
       
                }
                }
       
            //sum the colors and the alpha, passing them to the Output Surface 'o'
            o.Albedo = c0.rgb + c1.rgb + c2.rgb + c3.rgb+c4.rgb+c5.rgb+c6.rgb+c7.rgb;
            //o.Albedo = c3.rgb;

            o.Alpha = c0.a + c1.a + c2.a + c3.a+c4.a+c5.a+c6.a+c7.a ;
        }
            ENDCG
        }
        FallBack "Diffuse"
    }