"hideLabel" is the right method to make the labels invisible. I think the problem is in the line:
e.layer.hideLabel();
Out of my mind, I'd say that "e.layer" is the layer group, not the markers. You have to confirm this in leaflet source (the documentation is not very clear).
If this is true, then you should do something like this:
---------------------------------
myLayerGroup = e.layer;
myLayerGroup.eachLayer( function(myMarker){
myMarker.hideLabel();
});
---------------------------------
If this doesn't work, you should create a jsfiddle with a stripped down version of your code.