Efficient container loading has the potential to considerably reduce logistics and transportation costs. The container loading problem is computationally complex and, despite extensive academic effort, there remains room for algorithm improvement. Real-world problems are not always addressed satisfactorily primarily due to the large number of complex constraints and objectives. The problem addressed by this work is an unsolved multiple container loading problem introduced by Renault on the occasion of the 2014/2015 ESICUP challenge, organized by the EURO Special Interest Group on Cutting and Packing (ESICUP). Renault's problem requires a large number of different items to be packed into containers of different types and sizes. Items must be grouped into stacks and respect the `this side up' constraint. The primary objective is to minimize the volume of shipped containers. The smallest volume container may be left behind for the next shipment and is excluded from the main objective. Nevertheless, only a limited percentage of each product may be packed into this container. Additionally, a set of secondary objectives is considered. This work presents a decomposition approach embedded in a multi-phase heuristic for the problem. Feasible solutions are generated quickly, and subsequently improved by local search and post-processing procedures. Experiments revealed that the approach generates optimal solutions for two instances, in addition to good quality solutions for those remaining from the Renault set. The algorithmic contribution is, however, not restricted to the Renault instances. Experiments on less constrained container loading instances from the literature demonstrate the approach's general applicability and competitiveness.