1) Делаете запрос из базы всех hash и их id
2) Проходитесь по этому массиву, находите дубли и заменяете их на новые генерированные, какие вам нужно.
3) в массиве у вас есть еще id. по ним находите в базе данные и их потом обновляете.
$post = R::findOne('blog');
Вы в цикле из итерации в итерацию достаете один и тот же пост, поэтому и айдишка - const . Нужен код функции R::findOne('blog');