Antes de concluir que tienes problemas con el Bulk Insert y el foral debes verificar el plan de ejecución de cada sentencia de SQL. Si fuera del procedimiento tarda mucho dentro también tardará. Ya que las tablas contienen particiones debes de asegurarte de contemplarlas dentro de los criterios de selección de otra manera seria igual que no las tuvieses. Debes de asegurar tener los indices adecuados y que la búsqueda los utilice.
El bulk insert y forall no mejoran la eficiencia optimizando tu búsqueda sino reduciendo la cantidad de iteraciones entre el "engine" de SQL y el de PL/SQL.