Should I remove outliers if accuracy and Cross-Validation Score drop after removing them?
As a rule of thumb, removing outliers without a good reason to remove outliers rarely does anyone any good.  Without a deep and vested understanding of what the possible ranges exist within each feature, then removing outliers becomes tricky.  Often times, I see students/new hires plot box-plots or check mean and standard deviation to determine an outlier and if it's outside the whiskers, they remove the data points.  However, there exist a myriad of distributions in the world that if you did that, you would be removing perfectly valid data points.

In your example, it looks like your dealing with social media data.  If I were to sample 1000 users from a social media database and then plotted a box-plot to find "outliers" for number of likes a post gets, I can imagine that there could be a few so-called outliers.  For example, I expect my Facebook post to get a handful of likes on any given day, but when my daughter was born, my post related to that got into the hundreds.  That's an individual outlier.  Also, within my sample of 1000 users, let say I managed to get user Justin Bieber and simply like at his average number of likes.  I would say that he's an outlier because he probably gets into the thousands.

What outliers really mean is that you need to investigate the data more and integrate more features to help explain them.  For example, integrating sentimental and contextual understanding of my post would explain why on my daughter's birthday, I received hundreds of likes for that particular post.  Similar, incorporating Justin Bieber verified status, large following may help explain why a user like him receives a large number of likes.

From there you can move on to either building separate models for different demographics (average folks like me vs people like Justin Bieber) or try to incorporate more features.

TL;DR.  Don't remove outliers just because they are abnormal.  Investigate them.