percent stacked barchart - color

What do you mean, you want the categories to be encoded as shades of grey? Then you can simply use a grey fill scale.

Can't test without a reprex, but maybe something like that:

library(tidyverse)

Fig2 <- tibble(name = LETTERS[1:5] |> rep(8),
               perc = runif(5*8, 0, 1),
               value = c('An extreme amount', 'A lot', 'A considerable amount',
                         'A moderate amount','A fair amount', 'Some', 'Very little', 'None' ) |>
                 rep(5))

ggplot(Fig2, aes(x = factor(name), y = perc*100, fill = factor(value))) +
  geom_bar(stat="identity", width = 0.7) +
  labs(x = "Symptom", y = "Proportion (%)", fill = "value") +
  theme_minimal(base_size = 14) +
  scale_fill_grey(labels = c('An extreme amount', 'A lot', 'A considerable amount',
                                 'A moderate amount','A fair amount', 'Some',
                                 'Very little', 'None' ))

Created on 2023-11-10 with reprex v2.0.2

note only shades of grey will be hard to distinguish for so many categories. I suggested some alternatives here, maybe they can help.