"Should of been" actually makes no sense, and is incorrect. I think it comes from people trying to say "should've been" (and while should've I believe isn't an official word/contraction, it should be, and people use it like one) because if you've got an accent or aren't pronouncing it properly, those "similar phrases" come into play, like the aforementioned "should of been." Typing it is even worse, but understandable. Sometimes people type like they talk, and hence these slang forms come along.
At least, that's my take on it. I don't know for sure, but it makes sense to me.
Tl:dr, "should have been" is the most correct English phrase.