Regarding the modification of MSO images with the theme, it is completely normal.
For an MSO image, I see there are 2 different images displayed depending on the office theme.
Dark gray and black theme
Colorfull and white theme
On the other hand, whatever the office theme, extracting the MSO image with the CommandBars.GetImageMso method always creates this image with the colors of the Dark gray or black office theme.
The extracted image replaced in a ribbon control by the getitemimage or getimage method does not have the colors well suited to the office colorfull and white theme.
Shouldn't the image be pulled based on the user's office theme?
For the complete visualization of all MSO images on the ribbon, I have seen some examples. In the XML code, a button or an item is created for each image with the value of the imageMso attribute corresponding to the name of the imageMso. Many lines of code are required.
Using callback, the ribbon's gallery control can dynamically load images. It's more flexible.
Unfortunately, you have to extract the MSO images with the CommandBars.GetImageMso method to introduce them into the gallery.
This is what gives this color problem.
Is there another way to extract an MSO image?
Here is a display showing the images extracted by the GetImageMso method with the colorfull office theme. The colors of the extracted image match the office dark gray or black theme.
Here is a display showing the same colors between images with the dark gray office theme.