Единого фиксированного срока хранения именно для согласий закон не устанавливает - срок привязан не к самой бумаге, а к сроку обработки данных, на которые это согласие дано. Пока вы обрабатываете данные человека, согласие нужно хранить как доказательство законного основания; как только цель обработки достигнута или согласие отозвано, данные, а вместе с ними и подтверждающий документ, подлежат уничтожению в срок до 30 дней.
На практике это значит: согласие клиента, который давно ушел и данные которого вы больше нигде не используете, выбрасывать сразу нельзя - сначала нужно завершить обработку и удалить сами данные из базы, CRM, бумажных архивов, и только тогда убирать подтверждающий документ.
Отдельная рекомендация, не требование закона: даже после уничтожения данных стоит какое-то время держать акт об уничтожении и копию согласия отдельно от основной базы - если бывший клиент оспорит законность обработки, этим документом вы подтвердите, что действовали по правилам. Обычно для этого ориентируются на общий срок исковой давности.
Если согласия хранятся вперемешку с текущими и непонятно, где чьи данные уже отозваны, а где действуют - это повод навести порядок в реестре согласий: завести таблицу с датами выдачи, отзыва и сроком актуальности по каждому клиенту, чтобы не держать лишнее и не терять то, что еще нужно.