What you describe should work just fine. So I suggest taking a closer look at:
I created a summary field "total weight" to count the total of "weight" for each box.
Either that wasn't done correctly or that summary field isn't the actual field that you put in the header of your layout. This summary field also needs to be from the same table occurrence as that specified for the layout if you want it to show a total based on the current found set.
Right as you responded I tried putting the "total Weight" field in the same table occurrence, and it worked perfectly.
Thank you for your help!