I've done this before fine but I had scaling issues so I restarted my project. I created a bezier circle and moved the points around in edit mode to what I wanted. I set the 3D cursor to one of the points in edit mode that I wanted to be the origin. I went in to object mode selected the circle and then I used set origin to the 3D cursor in the Shift + S menu and it does not move.
It isn't a visual bug as the object rotates around the origin in its original place. Is there anything I've missed?