Indeed, looking at current docs of MediaWiki, for a feature that was replaced 7 years ago, isn't going to yield much info. Older versions of the docs are probably more relevant
wfMsgGetKey() is an implementation detail of the old system. It is roughly equivalent to either wfMessage( 'msgname' )->plain() or wfMessage( 'msgname' )->text() depending on the third argument. You
It would be unusual to use ->parseAsBlock(). 99% of the time you want ->parse() not ->parseAsBlock(). The most direct equivalent to wfMsgHtml() is wfMessage( 'keyname' )->rawParams( 'parameter' )->parse(). However, rawParams is strongly discouraged as it is very easy to give yourself an XSS security vulnerability, as it does no escaping of the parameter. It is strongly encouraged to use ->params() if at all possible.
Yes, ->parse() & ->parseAsBlock() will always convert apostrophes in the message to ' I don't understand how or why this is causing a problem. If it is because you are inserting the message inside a url, you should use urlencode
to ensure its properly encoded for a url. If its not because of url, what's the context that the & causes a problem?
Just fyi, to lookup old svn revision numbers, you can go to Special:Code/MediaWiki/97412. It is also included in the git notes
of the git repo, although those are often not downloaded by default during a git clone.