Training, cross validation and testing accuracy (RMSE and R2) differs when using different shuffles and splits
In terms of evaluation, the best you can do with a very small amount of data is repeating $k$-fold cross-validation many times (i.e. very large $k$), and consider the whole distribution of scores as the performance (in particular take into account the variance across folds).

It's going to be difficult anyway to obtain a reliable measure of performance with such a small dataset. Two options come to mind:


obtain more instances, possibly by using some interpolation method to generate artificial data (but it's not as good as real data).
make the model less complex by reducing the number of features, as this is likely to reduce the variance in the performance.