The concept of instancing is that you set a same object (object data) to different places. Sure, you can have different position rotation and scale, but the object will be the same. It is just how instances work. Imagine that you have several linked object created by Alt+D. They are edited at once, you cannot set a different mesh/curve/etc. data to them.
So in order to get different objects, you need to convert them into separate objects. This is exactly that Realize Instances node do.
After that, you can actually manipulate with data inside these objects. It may be a bit complicated.
To move spine position, you can use Set Position node, but you should enter different offset depending on spine ID and point ID. Spine ID you can easily get using ID node. But how to get point ID? To get it, I used Capture Attribute - which can grab a point ID before instancing, so that you will have 0 for the first vertex and 1 for the second. Using these 2 IDs, you can change the position of the second vertex in each spline:
Edit: The important thing is to realize your instances.
here is my previous answer-
"Generating variations in the instances with Capture Attribute
In order to pass a value through the node tree, you need to use a CaptureAttribute node. It can capture a value based on your curve's position or other attributes.
Then, you can begin to change values in other nodes based on the values of captured attributes."
Revised Pictures after comments: