Hi @Jason P2,
I've created a reasonable working model that demonstrates how this can be modeled with AGVs. I would still suggest looking into the new Warehousing feature, which makes it possible to designate slot locations, or Benjamin's suggestion of separating out the bays to be individual racks. The model I created is rather convoluted and may end up causing confusion as more racks and AGVs are added.
In the example model, the Queue is sending the items to the rack as soon as they become available, but it's using a Task Sequence list to handle the transportation.

A label is used to identify which of the bays the item was sent to and which control point that corresponds with using a Global Table:

The Process Flow pulls a task from the list, acquires an AGV, and then begins to dispatch the task sequence. This is interrupted by the Wait for Event activity that fires upon the AGV's loading an item.

The token then stops the task sequence during its execution and starts a new task of traveling to and unloading at the CP that was assigned using a label from the aforementioned table.

The AGV will now unload at the Control Point that is closest to the bay that an item is assigned to. Here's the working model. It might not be the most efficient way to do this, but there's not any easier ways that I could come up with. Let me know if you'd like an explanation on anything in this model.
agv-rack-picking.fsm