Сначала получите текущий сеанс
$session = $this->get('session');
Чтобы установить переменную:
$session->set('key', 'value');
Чтобы очистить все переменные:
$session->clear();
Чтобы сделать сеанс недействительным
$session->invalidate();
Когда я тогда делаю
var_dump($request->getSession()->get("key"));
возвращает ноль
Полагаю, проблема в том, что вы устанавливаете $ session дважды
$session = new Session();
$session->set('key', 'value');
$session = new Session();
$session->invalidate(1);
var_dump($request->getSession()->get("key"));
Возвращает строку 'value', в то время как
$session = new Session();
$session->set('key', 'value');
$session->invalidate(1);
var_dump($request->getSession()->get("key"));
возвращает ноль