I do agree that the AI seems very prone to refusing to swap hostages at my request and then turn around and offer me the same deal a month later. I have stopped attempting hostage deals myself and just take them as the convenient ones come.
The AI tries to have only a limited number of hostages and will answer no if that limit is reached, usually when one of their hostage relations ends, they will try to negotiate a new one directly if they see the need for it.