Thanks, that set me off down a different route:
var rect1 = new RectangleAnnotation();
rect1.Fill = GlassMainColor.ToOxyColor();
rect1.StrokeThickness = 1;
rect1.MinimumX = g1;
rect1.MaximumX = g2;
rect1.MinimumY = 0;
rect1.MaximumY = 100;
rect1.MouseDown += (s, e) =>
{
SelectedPane = pane;
};
Where "SelectedPane" is a public property. On the setter of the property, the plot is re-drawn and if the CurrentPane == SelectedPane then the annotation renders in a different colour, and the SelectedPane object is exposed publicly.