The steps you performed are correct. They should be in the deferred save list and the commit will save all of them.
My guess is you may be overriding the same primary key's each time. May be you can try logging the Primary key each time you do a obj-save. Most cases primary key may be pxInsKey or else check the key's present in the Class.
I think your step page is changing with every step of loop ? if yes then, after loop the step page will have the last page only and that is what you are comitting. So instead of comitting after loop if you need to save each page then put commit inside loop and try. Hope this will solve your issue - Rajesh