I could certainly have gotten behind, say, Colin Salmon as Holmes. Why not? Holmes and Watson are two of the great roles of English literature, and they've been played by many different actors and interpreted in many different ways. Why should only white men be allowed to play them?
And for that matter, why shouldn't they be transplanted to different eras and cultures? There have been a number of Holmes pastiches set in outer space or the future. Heck, we're just coming to the end of an 8-year run for a TV series that's basically Holmes as a brilliant doctor (namely House, which is playing off the fact that Doyle based Holmes on a real-life doctor he'd known). The great archetypes are always open to reinvention and variation.
I wouldn't have a problem with a Black Holmes - in fact I find that far more interesting than a female Watson. It's also far less predictable a change for CBS to have made. How many episodes is it going to take them before they start hinting at a 'will they/won't they' thing? I'll bet it's not long.
Changing things is fine when it's borne of a genuine intention to explore different aspects of a story. This however, is most likely more to do with CBS wanting to pull in the shipper audience.
Re the location/era change, I don't necessarily have a problem with that as both make sense, given that it's an American series. Given the magnitude of these changes to the original story though, you'd have thought that this alone would have given them enough to play around with.
Edit: Given the nature of the Holmes character, I'd suggest Adrian Lester over Colin Salmon.