В некоторых случаях мы можем заменить теперешнее совершенное длительное время на обычный Present Perfect без вреда для смысла и грамматики. А в случае с глаголами состояний (нравиться, любить, иметь), мы просто обязаны использовать именно Present Perfect вместо Continuous, потому что такие глаголы практически никогда не дружат с -ing-овыми окончаниями. В список этих Non-Continuous слов также подпадают: to be, to arrive, to own. Так что сказать has been having мы точно не можем.