single and double quotes are displaying as HTML – eg ’ and “

I think your problem related to wptexturize() function.

Description
Returns given text with transformations of quotes into smart quotes,
apostrophes, dashes, ellipses, the trademark symbol, and the
multiplication symbol.

Solution:

remove_filter( 'the_title' , 'wptexturize'  );