You need to add debounce to your code otherwise you will have BOOMPART’s all over the place when you touch your main part which might be why the explosions happen in different spots.
You do need a debounce as @quakage said, but another reason it could be is that the part you are spawning is not anchored, so when the explosion happens, it launches the part causing the visual concern. When the part launches the explosion follows it as well. That and your script doesnt delete the parts afterwards so it will get pretty hectic.