@Tatanan: My answer to your #1 is my #1. Don't use a unified anchor. Use an advanced anchor, anchored only on the axes that aren't being scrolled. Unless you mean aligning the button horizontally, as well as have the scroll view scroll horizontally? If so, UpdatePosition() on the scroll view (or ResetPosition()), provided you chose the Content Origin to be on the left-hand side.
In regards to your #2, that's how the UICenterOnChild script works. It centers on the child (with your offset). If you wanted to restrict it to not scroll past the edges, then it wouldn't be centering anymore at all, would it? How would you even show that your "centered" item is changing if it's locked to not move anymore past a certain point? It sounds like you shouldn't be using the UICenterOnChild script anymore at this point. You need too much custom functionality from it. You will want to write your own script.