Partial answer (first bit):
m.19 = F7/A (the melody is sustaining Eb)
m.21 = G/B (the basses are playing "B")
Otherwise yes your analysis sounds accurate. At first I thought m.17 was an Fm7 but now I don't hear it :)
You need to know which convention is being used, because there are more than one.
One system simply uses upper case Roman numerals to indicate scale degrees with no reference to chord quality or scale type.
For systems that use sharps and flats the basic idea is they alter the referenced scale degree from some prevailing default.
In jazz and pop that ...
There are varying opinions on this But I think we have to keep numeral notation absolute, same as letter notation. Music doesn't stay neatly in one key or mode. It's bad enough having to establish where the tonic is at any time, without having to state whether you're numbering according to major, harmonic minor, melodic minor, natural minor, Dorian..
The first is correct: i VII VI V. Just make sure you clearly indicate that you're analyzing the passage as being in C minor. The context takes care of the rest.
If, for argument's sake, the passage was otherwise in C major but those same Bb and Ab chords came up, then you would mark them as being flat: bVII bVI.
Source: Tonal Harmony 5th Edition by Kostka ...