I have a similar situation on part of my plot, except there is no retaining wall below - just 40ft of steep/vertical slope.
I decided to plant many small shrubs rather than fewer large ones - ie. lots of rosemaries instead of a few olives. ...The theory being that none of the individual plants will make big or far-reaching roots (hence not disturbing the wall), but the total plant mass would be similar. The roots would also be better distributed where needed (along the line), and the plants would have less top-growth to catch the wind (you don't want the tree/shrub to act as a lever in the wind, prising the soil (or blocks in your case) away from the edge). Also, having a row of stems makes it more effective at building/retaining a slight wall of soil, so winter storm water can be directed along the slope and away - rather than eating gullies into it.
I chose rosemary because it is evergreen, dense, reasonably long-lived, drought-resistant and attractive to butterflies. It is sufficiently dense that it will (I hope) act as a good barrier to the wild (but lovely) weeds on the far side, letting me maintain 'this' side as a path.
Also, having many small plants makes it relatively easy/practicable to replace individuals if/when they die.
And it is easy to propagate rosemary from cuttings.
We'll have to wait to see how my theorizing works in practice!