I think I understand now.
A couple of things, violin plots are smooth densities, which means they present summaries of your data, and not absolute values of your data. So even if two datasets/groups have the same exact number of observations at any particular level (e.g. education==16), we do not necessarily expect that the violin plot is exactly the same width at that point, because the surrounding data changes the local context for density smoothing.
Secondly, it's possible that the code below isn't doing precisely what you think it's doing.
SLID[!SLID$education %in% 10:15, ]
This code is just removing people whose education value is exactly 10, 11, 12, 13, 14, or 15. Is that your intended goal of that code? Without any context it just seems like perhaps that is not the intended effect and may contribute to the differences in plots.