Hey @rhorn2, I think I've got some answers for you. Let me know if you need more clarification.
1) Task Executers (TEs) can hold more than one item at a time. If select a TE and look at the Properties panel on the right, you'll see a "TaskExecuter" section. Under that, there's an option to change the capacity (default is one).

That means you don't have to combine the 6 totes before loading them into the TE.
2) Here's the documentation on Task Executer concepts you can reference. I can give you a brief overview though.
TEs are objects we use to simulate what their name implies - someone/something that performs a set of duties/tasks. A Task Sequence (TS) is a list of tasks a TE will perform in order. For example, when your Queue10 gets filled, your TE receives a TS to perform a number of tasks to deliver the totes to the FloorStorage:

(This screenshot is from the Tree - a view that shows you properties of objects. I'm currently looking at the TE's tree variables, one of which is "activetasksequence", a.k.a. the TS it's currently performing). You can program the logic of TEs through the 3D model and the properties panel (which I referenced earlier) or through Process Flow (or both!).
3) Yes, items can be separated once unloaded. You can either put them through a Separator or write some Process Flow logic to take care of it for you.
As for your model, I've modified it to perform (what I assume is) your expected behavior.
I assume that you wanted 6 full totes to be placed on a pallet. If so, then you had the right idea using a Combiner; however, your connections were in the wrong order. You had the Totes coming in through Port 1 and the pallets coming in through Port 2. A combiner's input connections matter - it expects to receive a pallet/tote/some flowitem that you can stack things on through Port 1. Then it expects X number of items from each other port (defined in the properties panel):

Note: this Components List table will add rows the more input ports it has. If instead you wanted to move all 6 together but keep them separate, then you can remove this Combiner and send them straight to Queue10.
Next, you had the Center Connection between Queue10 and the TaskExecuter1, but you still needed the Output Connection from Queue10 to FloorStorage1. Queue10 is declaring that it wants to send items to FloorStorage1 that way; however, we need to check the "Use Transport" box so then it knows to use our Center Object (the TE).

If you remove batching (since we now have the 6 totes on 1 pallet, thus it thinks it's 1 item), it will load the pallet and move it to the FloorStorage. (The pallet is too big to fit in the FloorStorage slots, so it will throw an error saying it wasn't given a slot).
Here's the other approach: I changed your model a bit so instead of packing all the boxes, Queue9 will batch 6 totes and the TE will load all 6 totes to take to the FloorStorage. There, it will unload each one individually.

(The model is sped up a lot, so it may look like the TE jumps around).
model-1-v2-carleton_1.fsm