Juan is right, although I really like challenges so I came up with somewhat acceptable solution:
First of all, you have some things that need tweaking. First of all some of your sections (3) are weirdly closed curves. Check the first attached image.
Secondly, on the other side of your sections the curve and line intersections aren't on the path curve. Check the second attached image.
So after fixing those, I've made an InterpCrv connecting your top end points of each section (image 3)
Using sweep2 command I made the surface you usually made with loft.
Check the image4, you can see your section curves are not scaled down proportionally. You need to work on that a little more.
Then I mirrored the last section curve over section line. (img5)
Next I made InterpCrv from the Mid of upper section curve, connecting the Mid of your (purple) cap curve, and ending it on the Mid of mirrored section curve. (img6)
[I would extract an isocurve, and match that InterpCrv with extracted one, and get the right curvature, but that would take some tweaking of your cap curve, and your section curves]
Next, split all the curves. The upper section curve (annot. dots 1&4), the connecting InterpCrv we made (dot 2), and your cap curve (3&5) ->(img7)
Now, using NetworkSrf, start with one half of your cap. Click on 3, 1 and 2 (that order). That is one half, and for the other, click on 3,4,5. Next, using matchsrf match those two halves (img8 for matchsrf settings)
And in the end using mergesrf merge the surfaces...
p.s.
I haven't made the "flat" bottom surface, I think you'll be able to do that yourself.
HTH