I would say that something like "dai" is probably the most generic. I can imagine it being used in all those sentences correctly.
Coraggio literally means courage, so I would imagine it more as being used in a situation when you need to build up a bit of "courage", even in a metaphorical way.
"Su" literally means "up". It can be used as to cheer up someone, or to spur someone to do something. So, if I was asking a friend about how a dress looks on me, and she used "su", that would feel more like "just take this dress and let's finish this, we've been around shops for three hours already!".
"Forza" literally means "strength". I can imagine it being used, again, when inciting someone, ("forza, ancora qualche minuto di cammino e siamo arrivati" -> "Come on, some more minutes of walking and we'll get there"), or to encourage. Actually, "Coraggio" would work exactly the same in this context, especially if the person you're speaking to really looks very tired. And also "su" and "dai" would be ok, although especially the latter would probably implicitly express "stop complaining".
"Avanti" I think transmit more the message of "go on", which to be fair would make it suitable for this context.
There are also many other words that can be used, as someone already pointed, and I would say that the differences in using some more than others may be also regional, or even just personal choice actually more then anything else.
Also for these words I guess the intonation would matter as well to convey the message.