I can't find any way of fixing an adorner to another point of the adorned element, other than the upper-left point. I know you can move the adorner relative to this point, by implementing ArrangeOverride, but the co-ord system is always based on the top-left.
Any ideas?
Not that I know of. But there is one more possibility to position the Adorner content than ArrangeOverride: AdornerPanel Class. With it's AdornerPlacementCollection Methods
you can determine the position and size of your Adorner relative to adorner or content e.g. with a factor and an offset. See this sample to place the Adorner above the adorned control: