Are we presuming that Ophelia would be Hamlet's match? Because I always felt that Ophelia and Hamlet weren't really meant to be; I prefer Hamlet/Horatio : ) In which case I'd say Draco would make the best ophelia, and he could play Ophelia opposite either Snape of Harry.
Then there's ginny, in which case Harry could be Hamlet and Snape Horatio. And Mr. Weasley might make a passable Polonius (sp?). Or Lily ('Lily' Ophelia. Ha.)
But if I had to pick between Snape and Harry, I suppose Harry would make the better Ophelia. Maybe figuring out the king/queen and Hamlet's father would help...