How properly use scale_fill_manual() and its arguments labels(), breaks(), limits() - colours being messed up!

Hi FJCC,
and thank you so much for the example plots. They were really useful!
However, even using the option you suggested with values = c(a= "red", ...) & limits=(c("b", "c", "a", "d") does not work for me, because I want to show only 4 out of the 8 legend items, and that's why I wanted to use limits as exemplified here -->how keep aesthetic mapping but remove a specific item from legend with ggplot - #3 by dromano

But, if I use limits=c() and I list only the first 4 elements of my fill variable, then I get most bars grey... this seems to reflect what you said about leaving a value out of limits, which turns those bars grey...how can I avoid that? Is there a way to limit the elements shown in the legend to only 4 out of 8, but retain the assigned colours for each fill category?

I am not sure if I explained it well..
Thank you for your help!
Gabriella