You have 8 data independent data series, 1st one is called A, 2nd one is called B and so on...
Each series has data points at various dates.
Think it as independent sets of X-Y points. One series is called A, another is called B and so on
So, when you enable data labels, you have to enable it for a particular series.
If a series has a point missing, then the data label can't be displayed.
As per your requirement, you may want the labels for dates and not for a particular data series, but the method I employed shows labels for a particular series.
We can, as humans look at it and say, it applies for the date, and that is what we are doing.
To answer your question, why it applies only series D, because you selected series D and applied data labels to it.
Had you selected any other series, then labels would have been applied to it.
That is why I asked you to add one more column (thus adding a series) and setting it as max(A:H) for that particular row. This will ensure that a data point is always applicable. If you want to make it foolproof, then your formula should read something like
if(isnumber(max(A:H)), max(A:H), 0)
First check if max(A:H) returns a number, if it doesn't then simply insert 0, if it does, then use that number.
Try changing your D values and you will notice that the height from which the notes are displayed will change.
Try changing the series to which data label is set to, you will notice the notes will move slightly to left or slightly to right.
Alternatively, you can just set new series as a constant and not bother with the max formula,
but make sure you set the fill option as none for that data series, as that is not something you want to show it your chart.