I looked at your file, I see some errors in the cutting, I would explode the block, and only create 1/2 the object than mirror it. Check that all the cuts are working and trimming properly. Also where your words are placed do you need that texture inside them? Because you can save memory by deleting any cutters inside the words and improve your chances of success.
Your cutters are pretty complex shapes due to the filleting, When I explode your block the file saves at 656 meg so it’s no wonder operations take a longer time to complete. Maybe arraying and joining might be an alternative to Boolean operations like create one pocket with a trimmed cutter and array that to create your pin texture.