Sucede que foreach() trabaja con una copia del arreglo que le pasas, por eso no estás borrando realmente nada, solo la variable temporal dentro del bucle.
Para eliminar con precisión el índice de la sesión deberías hacer algo así:
Código PHP:
unset($_SESSION['prod'][$po]);
Ya que $po es el índice a borrar.