As I understand this, the only way to tie the records after the HH record with the HH record is their position RIGHT AFTER the HH record. So, the only way to add positions 3-18 from the HH record to all records would be with a VBA routine. Because all records are the same length, define a record with the following fields: 2 bytes, 16 bytes, 382 bytes. The output record would then have 2 bytes, 16 bytes, 382 bytes, and 16 bytes. Read through the table and at each HH record move the 16 bytes into its own field (the output 16 bytes at the end of the record).
To answer your "Next" question: After you have finished this procedure, then you can create a query for each record type, based on the first two bytes. Each query would define it's own record type, not by field names, but by using the Mid() function.
Something else you could do is to write the records out to their own individual table, based on the first two bytes of each record during the updating of each record with the 16 bytes from the HH record.
I do not know how, but I believe I have seen something in the past to where you can move the whole 416 bytes into a form of a data structure and be able to reference each individual field from the data structure. I would suggest posting that question back to this board if you don't get any other responses to this thread.