glue[G_,n_,m_,p_]:=Block[{horizontal,vertical,eqs,solution,indices},
horizontal=Inverse[G[[n-2;;n+1,n-2;;n+1]]];
vertical=Inverse[G[[n-p;;n-p+3,n-p;;n-p+3]]];
eqs=Table[G[[j,n+1+i]]==horizontal.G[[n-2;;n+1,n+1+i]].G[[j,n-2;;n+1]],{i,m-1-p},{j,n-p}];
eqs=Flatten[AppendTo[eqs,Table[G[[i,n+1+j]]==vertical.G[[i,n-p;;n-p+3]].G[[n-p;;n-p+3,n+1+j]],{i,n-p},{j,m-1-p}]]];
indices=Join[{1},Range[n-p+1,n-p+3],{n+m-p}];
solution=G[[1,n+m-p]]->Min[Solve[Det[G[[indices,indices]]]==0]/.{(Subscript[x, _,_])->y_}->y];
G/.Flatten[Join[Solve[eqs/.solution],{solution}]]
]

G=({{1, -1, -1, -1, -1, -5, (Subscript[x, 1]), (Subscript[x, 2])}, {-1, 1, -1, -5, -1, -1, (Subscript[x, 3]), (Subscript[x, 4])}, {-1, -1, 1, -1, -5/3, -1, -1, -1}, {-1, -5, -1, 1, -1, -7, -1, -5}, {-1, -1, -5/3, -1, 1, -1, -1, -1}, {-5, -1, -1, -7, -1, 1, -5, -1}, {(Subscript[x, 1]), (Subscript[x, 3]), -1, -1, -1, -5, 1, -1}, {(Subscript[x, 2]), (Subscript[x, 4]), -1, -5, -1, -1, -1, 1}})

G=({{1, -1, -3, -1, -1, -3, -5, -3, (Subscript[x, 1]), (Subscript[x, 2]), (Subscript[x, 3]), (Subscript[x, 4])}, {-1, 1, -1, -3, -3, -1, -3, -5, (Subscript[x, 5]), (Subscript[x, 6]), (Subscript[x, 7]), (Subscript[x, 8])}, {-3, -1, 1, -1, -5, -3, -1, -3, (Subscript[x, 9]), (Subscript[x, 10]), (Subscript[x, 11]), (Subscript[x, 12])}, {-1, -3, -1, 1, -3, -5, -3, -1, (Subscript[x, 13]), (Subscript[x, 14]), (Subscript[x, 15]), (Subscript[x, 16])}, {-1, -3, -5, -3, 1, -1, -3, -1, -1, -3, -5, -3}, {-3, -1, -3, -5, -1, 1, -1, -3, -3, -1, -3, -5}, {-5, -3, -1, -3, -3, -1, 1, -1, -5, -3, -1, -3}, {-3, -5, -3, -1, -1, -3, -1, 1, -3, -5, -3, -1}, {(Subscript[x, 1]), (Subscript[x, 5]), (Subscript[x, 9]), (Subscript[x, 13]), -1, -3, -5, -3, 1, -1, -3, -1}, {(Subscript[x, 2]), (Subscript[x, 6]), (Subscript[x, 10]), (Subscript[x, 14]), -3, -1, -3, -5, -1, 1, -1, -3}, {(Subscript[x, 3]), (Subscript[x, 7]), (Subscript[x, 11]), (Subscript[x, 15]), -5, -3, -1, -3, -3, -1, 1, -1}, {(Subscript[x, 4]), (Subscript[x, 8]), (Subscript[x, 12]), (Subscript[x, 16]), -3, -5, -3, -1, -1, -3, -1, 1}})

fullGlue[G1_,G2_,p_]:=glue[glueGramMatrix[G1,G2,p],Length[G1],Length[G2],p]

Solve[Det[G[[{1,3,4,5,8},{1,3,4,5,8}]]]==0,(Subscript[x, 2])]

Solve/@(%107/.%110)

glueGramMatrix[G1_,G2_,p_]:=With[{n=Length[G1],m=Length[G2]},
Table[Which[i≤n&&j≤n,G1[[i,j]],i>n&&j≤n-p,(Subscript[x, j,i]),j>n&&i≤n-p,(Subscript[x, i,j]),True,G2[[i-n+p,j-n+p]]],{i,n+m-p},{j,n+m-p}]]

G1=({{1, -1, -1, -1}, {-1, 1, -1, -1}, {-1, -1, 1, -1}, {-1, -1, -1, 1}})

G2=({{1, -1, -(Sqrt[5]), -1, -1, -1}, {-1, 1, -1, -2-(Sqrt[5]), -3-2(Sqrt[5]), -1}, {-(Sqrt[5]), -1, 1, -1, -2-(Sqrt[5]), -1}, {-1, -2-(Sqrt[5]), -1, 1, -1, -(Sqrt[5])}, {-1, -3-2(Sqrt[5]), -2-(Sqrt[5]), -1, 1, -1}, {-1, -1, -1, -(Sqrt[5]), -1, 1}})

P=({{1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0}, {0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1}})

pair[b_]:=Simplify[((3-b)/(1+b))]

pair[-(Sqrt[5])]

G2=P.G2.P

(G4=fullGlue[G1,G2,3]//FullSimplify)//MatrixForm

MatrixForm[G4]

glue[glueGramMatrix[G4,G1,3],7,4,3]//FullSimplify//MatrixForm

fullGlue[G4,G1,3]//FullSimplify//MatrixForm