>What should a server do if the object of the Follow Activity is already in the followers collection?
This could happen due to bad connectivity. So the correct action here is to send Accept again to ensure it is processed by the other server.
In general, activities should be idempotent.
>Now the worst case question: Consider two Follow activities having been send by Bob. Then Bob sends an Undo Follow for one of them. Question: Should Bob be removed from the followers collection?
Depends on the order in which they are received. If Undo is the last one, then Bob should be removed from followers.