Clustering by Distributions of Groups of observations
You say "I don't want to calculate slopes or averages by groups and cluster because the distributions don't seem linear, or normal" but it looks to me like each group makes a nice compact cluster which would be represented well by the centroid of the group. Of course, you have 5400 groups and I am only looking at four of them in your sample. Maybe the other groups are not as nice. Nevertheless, let's take a look at the data that you provided. Here is your data in four of the seven dimensions. The group centroids are marked with an orange circle with a black edge. 



It certainly seems to me like the centroids provide a good representation of the group position. Based on this,  I would recommend calculating the centroids by group and then clustering the centroids. (Of course,  you will need to normalize the variables first because they have such different scales.)



Code

Centroids = aggregate(df[,2:8], list(df$Grp), mean) 

par(mfrow=c(1,2))
plot(df[,c(2,7)], pch=20, col=df$Grp)
legend("bottomright", legend=levels(df$Grp), pch=20, col=1:4)
points(Centroids[,c(2,7)], pch=21, bg="orange")

plot(df[,c(4,6)], pch=20, col=df$Grp)
legend("topleft", legend=levels(df$Grp), pch=20, col=1:4)
points(Centroids[,c(4,6)], pch=21, bg="orange")