What is different between R2 and mean of R2 in multiclassification probelm? Which one is correct?
First of all, if you are in a classification problem as you said, R2 score is not good, it should be used for regression problem. For classification problem you have to use something like accuracy, precision, recall and F1 score.
First question
Anyway, I will answer your first question about R2score:
R2 mean: you are calculating the R2 for each split you have in your CV(train the model with training data, and evaluating it in test data). And then, you calculate the mean of each value of the split. In your case, you will have 9 values of R2score since you have 9 CV. And the result is the meaning of these values.
r2_score: you are evaluating the y_true and y_pred. You already have the y_true. To obtain the y_pred you used cross_val_predict. What you do, is calculate the predicted value using only the CV where you have the y_true in you test split.
I would recommend you use R2 mean, it's more robust score in my opinion
I recommend read this post to understand it in more detail.
Second questions
First of all, take care of what I mention: r2 is not a good score for classification problem. But let's suppose that you use another score and you have similar score outputs.

Is my model overfit\underfit?

Yes, it is. Basically, if your training accuracy is much bigger than your test data, you are overfitting. Your scores must be quite similar. What you have now, is a model that is &quot;memorizing&quot; and not learning. Be careful.

Shall I tune my hyperparams?

Yes, you have to try tunning your hyperparameters in order to achieve similar score between training data and test data. You should check how the model works changing hyperparameters and decided which helps you to avoid overfitting. You can do it manually or using GridSearchCV for example.