A surface shader is a vertex fragment shader generator. The “line 361” being referred to is the line in the generated shader.
The uv4_ prefix translates to “use the variable with the TEXCOORD3 semantic from appdata as the uvs” in the shader since the texcoord semantics are zero based. That : TEXCOORD2 in the Input struct is completely ignored.
The issue comes down to their implementation of Tessellation in surface shaders doesn’t handle wanting anything but the normals, tangent, main uv and secondary uv. Anything beyond that and it generates a shader that won’t compile, like you’re seeing. The solution is to hand-modify the generated shader and use that instead. Its not ideal, but it at least works.