My troubles started when I had a variable with more than 6 values because that is the current maximum value for the scale_shape function in ggplot2.
Due to that problem
What about using scale_shape_manual()? If I understood your question correctly, you don't really need to differentiate by both colour and shape and would prefer shape, right?
ggplot(dataf, aes(x=Density, y=Growth)) +
geom_point(aes(shape = Municipality)) +
scale_shape_manual(values = 1:11)
produces:
