What we normally do is we start with updating the managers. Because we have 2 in an F5 cluster we remove one from the cluster and upgrade the manager. If you upgrade it will not ask for detaching appstacks of all machines and if you have more than 1 Appvolumes manager there is no need to detach all appstacks. Make sure that you DO NOT overwrite the current database, otherwise all info will be lost.
We then change the managers in F5 so all Agents will connect to the new manager. If this goes well we update the other manager using the same mechanism.
After managers are updated we update the GI with the new agent and test is rather carefully to see if everything works and then migrate the pools one by one to make sure everything still works.
We do not upgrade appstacks or writables (sometimes not even the templates) as long as it is not needed to do so and normally you would not need to upgrade appstacks or writables if you upgrade agent and manager.
Regarding the time frame. Upgrading each manager (if everything goes well) will take about 15 to 30 minutes. Regarding the agent. I would suggest installing it on the GI and it depends how long it will take to update all of your pools.