Can overfitting occur even with validation loss still dropping?
I am not sure if the validation set is balanced or not. You have a severe data imbalance problem. If you sample equally and randomly from each class to train your network, and then a percentage of what you sampled is used to validate your network , this means that you train and validate using balanced data set. In the testing you used imbalanced database. This means that your validation and testing sets are not equivalent.
In such case you may have high validation accuracy and low testing accuracy.
Please find this reference that talks mainly about data imbalance problem for DNN, you can check how they sample to do the training, validation and testing