Hola cmarrero,
Aun así, si te fijas en tu código expuesto nunca descargas $p2 de ningún lado, al tu pasarla en tu campo "hidden" no tienes forma de distinguir.
Deberías de hacer mejor algo así por cada pregunta:
Código PHP:
<input type="checkbox" name="preguntas[<?php echo $p2['idpregunta']; ?>][]" value="<?php $linea["idrespuesta"]; ?>" id="checkbox" />
Así en el otro lado puedes ciclar tus preguntas:
Código PHP:
foreach( $_POST['preguntas'] as $idpregunta => $respuestas ) {
echo "Pregunta $idpregunta marco las siguientes respuestas:";
print_r( $respuestas );
}
Así podrás conocer el id de la pregunta y los subsecuentes id de las respuestas que eligió.
Saludos.