По первой ошибке все просто, я все не искал но вот
if (!user) response.json({ status: 400, message: 'User not found' });
Нужно выходить из функции т.е. делать return, ошибка говорит что ты пытаешься сделать response после того как он уже был сделан. Ищи места где ты на if делаешь 2 разных респонса.
По второму вопросу, не вижу serialize/deserialize суть паспорта, что он тебе в тело req достает юзера из базы, посмори если у тебя req.user если нету, то тебе нужно deserialize и затем через serialize будет проверяться и сессия и юзер.