Here is my proposal (took me the whole afternoon to figure it out), hope this helps.
Based on frougon's proposal to your previous question to use quiver plots to obtain the decorated arrows, I added some code to show the extra labels.
The code takes a data file as argument for the plots, so it should be easier to use than the pure TikZ script above.
Here is a function element that gets an element of your table. The syntax is element(<row>,<column>), where both row and column start at 0.
Here is a very simple hack of the plot handler, which uses the undocumented key at end bar, and which allows you to color the bars in one go. I cannot guarantee that this will always be safe, but at least here it seems to work fine.
This is a partial answer, dealing only with the creation of the random numbers.
pgfplotstable lets you generate columns of N values based on mathematical expressions, including random numbers, so it's not necessary to define N * 4 macros. random(a,b) is not available though, but int(a + rnd * (b - a)) does the same (?). Note I've used a single random ...
I came across this before and am not claiming that the following is the best solution. For some reason the anchor gets overwritten by the y coordinate, i.e. the meta value. Here is one possible way to fix this: instead of visualization depends on use the scatter/@pre marker code to get the anchors. (Recall that nodes near coords is a scatter plot of nodes.)
One very hacky solution is this:
Add a 0 entry to the yoy column for 1Q20 - this causes the missing label to show, but now creates a problem with nodes near coords - there is an extra one from the first series at 0.0 for 1Q20.
To fix the above, manually paint over it with a white rectangle. (haha)
This is fine with a small data series but would be ...