Estás añadiendo a todos los productos en el mismo arreglo, sin hacer diferencias por el tipo de paquete. Ya que utilizas tres tipos de paquetes y puedes añadir a todos los tipos de producto, sería más fácil si utilizaras un arreglo para cada tipo de paquete e hicieras la comprobación por cada uno de acuerdo con el tipo de paquete al que está destinado cada producto.
Por cierto, si en el método
.indexOf()
colocas el índice como segundo argumento, la búsqueda empezará desde esa posición, ignorando si antes de ella ya existe el producto a buscar.