CNN not learning properly
I'll make a few observations that will hopefully help.


I would remove the dropout layer until you have evidence of overfitting on the data.  A dropout layer is generally used to make a model more generalized which is not your problem in this case and it may be hurting your model.
The images may not contain enough information to distinguish between the classes.  Can an expert assign a class label by looking at the images? If not, it may be that it is just not possible from the images.
Your accuracy scores imply that the model is just guessing since a random chance classifier would be expected to perform as well. However, it is curious that you seem to get reasonable accuracy on one class.  You may find that you need multiple models configured as one-vs-the-rest binary classifiers. Each model can be uniquely configured and trained to specialize on one class.  After the training is complete, which could be time consuming, prediction should be efficient.
Lastly, do you think that the model has stopped learning by the time you stop training?  Intuitively, I would anticipate the need for tens of thousands of epochs, and potentially millions, before seeing a really refined model.  100 epochs seems like it would be just starting to learn. Because of this cost, I would recommend you configure your model so you can continue training from a stopping point.


And by all means, keep trying different configurations of your layers.  One thing to remember though is that each time you use a convolutional layer you are losing information.  You need to consider how much information you are losing with each convolutional layer.