I don't have access to try a prototype right now, but I believe the problem is that the viewport object does not inherit from the spatial object so it does not actually track it's position. This means that when your player object moves, the ScopeCamera object stays where it was. So, if you put a Camera as a child of the Viewport it's location will not get updated.
One solution is to force updates to your ScopeCamera location using a script or using a RemoteTransform object. The RemoteTransform is super easy to use - just add that to your tree where you wan the camera to look from, then configure it to update the ScopeCamera object. That will take care of position and rotation etc