Во - первых я бы советовал использовать функцию serialize(unserialize для обратного действия) - преобразует массив в строку. Во вторых я бы посмотрел бы таки структуру таблицы post_meta. У поля значения( value) там имеется определенный объем данных, которые можно впихнуть туда. Если впихнуть больше, то работать не будет. Т.е. Ваш алгоритм текущий перестанет работать на определенном количестве данных.
Не работает Ваш скрипт скорее всего потому что вы пытаетесь запихать массив в post_meta, где должна быть строка(опять же serialize в помощь).
Я бы завел на вашем месте свою таблицу из трех полей id - идентификатор записи бд(первичный ключ), id_post() идентификатор записи wordpress, id_user идентификатор пользователя и хранил бы там лайки.