Итак решение, за которое заплатил деньги (хорошо, что не большие) и которое работает:
$currentPageUrl = $APPLICATION->GetCurPage(false);
$currentPageSeo = array();
$arSelect = Array("ID", "PROPERTY_TITLE", "PROPERTY_META_KEYWORDS", "PROPERTY_META_DESCRIPTION", "PROPERTY_HEADER", "PROPERTY_SEO_TEXT");
$arFilter = Array("IBLOCK_ID"=>IBLOCK_SEO, "PROPERTY_PAGE_URL"=>$currentPageUrl);
$res = CIBlockElement::GetList(Array(), $arFilter, false, ["nTopCount" => 1], $arSelect);
if ($arItem = $res->GetNext()){
$currentPageSeo = array(
"TITLE" => $arItem["PROPERTY_TITLE_VALUE"],
"KEYWORDS" => $arItem["PROPERTY_META_KEYWORDS_VALUE"],
"DESCRIPTION" => $arItem["PROPERTY_META_DESCRIPTION_VALUE"],
"HEADER" => $arItem["PROPERTY_HEADER_VALUE"],
"SEO_TEXT" => $arItem["PROPERTY_SEO_TEXT_VALUE"]["TEXT"],
);
}
Изменений буквально чуть-чуть. Обязательно размещать код в активном шаблоне, у меня он там и размещался - мог иногда сломать вывод каталога. Надеюсь код будет полезен, а сам позже попробую на своем сайте добавить про это статью, в надежде перебить в выдаче множество платных решений на этот счёт.
Будет странно отмечать свой же ответ, ответом на вопрос, но это работает.