If you're working on the hold and release first are you trying to backchain it? besides simply delaying your click a tiny tiny bit longer each time for the hold, I've also heard of the 2 grabs method. Basically you only click after the dog grabs it twice. Eventually the grabs get closer and closer together in time until the dog becomes lazy and tries to see if just one longer grab will get a treat, then you jackpot since you have a longer hold!
It also depends what kind of retrieve you are talking about. If you mean a moving object (such as a ball or stick) most dogs learn faster when their prey drive is activated... chasing an item that is/was moving. That means the dog needs to have some amount of prey/play drive to start with, and if the dog isn't a semi-natural 'retriever' it can take a while to get them to hold the item long enough to get it back to you.
On the other hand, if you want them to pick-up an item that is just lying on the ground, (or on a table, in a basket etc), then you don't want to activate prey drive. Because this method doesn't require any retrieving instinct or amount of prey drive, any dog can learn to accomplish the task. This can then be transferred to a moving object if the goal was to play fetch.
Here is a video I made when teaching my service dog puppy to retrieve: