Aparte del error con el scanf que te han marcado, el uso de gets (no recomendado y que se ha eliminado en las últimas versiones de C) y el uso de fflush en stdin (la función solo sirve para flujos de salida, en los de entrada no está especificado su funcionamiento) el error que tienes en Busqueda es que no realizas una búsqueda en el array, solo miras el primer elemento.
Sigue el flujo del programa.
Entras en un for para recorrer el array y el if busca si existe el dato. Si lo encuentra devuelve el nombre y sale del for. Bien.
La cosa viene cuando no encuentra el dato: directamente, sin tener en cuenta el resto del array, indica que no ha encontrado el producto y el break hace que salga del for, sin existir posibilidad de buscar en el resto del array.
Por tanto te falta algo para, en caso de que no se encuentre pase al siguiente elemento del array y diga que no hay existencias en caso de no encontrarse.
Por cierto, te iría bien separar la búsqueda de la presentación de resultados, verás que la lógica para llegar a la solución es más clara: es decir, por una parte buscas en el array y si encuentras el elemento marcas como que lo has encontrado y detienes la búsqueda pero si no lo has encontrado indicas que no ha habido éxito. Después según el resultado lanzas un mensaje u otro.