Almost correct, the Seek method takes two parameters, the first one is the Position in the stream (so AllOfHeaderSizesAdded) and the second parameter tells the method where to start counting. The second parameter can for example be soFromBeginning or soFromEnd so
Seek(23653, soFromBeginning) seeks to the 23653rd byte from the beginning of the file.

Also, your package files consist of three individual parts: the file data at the beginning, a list of all files and a footer which stores the file count.

When you want to append files to your package, you'll have to seek to the position right after the last file in the package and then write the new file there. You will then have to re-build the entire file index and the footer so it's a good idea to create a copy of the index list before appending a file.

Here's an image that should clarify the structure of a package file for you