Well, let me explain it this way. When you attempt to pick up any weapon, you test to see if you can pick it up... so you probably check whether you have max ammo and whether you don't have the weapon. Since both can occur before visiting Rowan/Harris (the Sanctuary has a free crossbow weapon available), this check is somehow made during the conversation. Part of the conversation with Rowan/Harris is them giving the crossbow to you for free, however, it should fail since you have full ammo and have already obtained the weapon.
How this applies to the bug:
Since there is no possibility to obtain the weapon, vanilla Strife handles it gracefully by telling you "You Seem To Have Enough" which is essentially the default message for Strife when unable to obtain something when you have too much of it (such as the Order Medic's free healing or the Order Armory's free assault rifle ammo). After showing the message, it then continues on with the conversation.
However, in Vavoom, this check is made, but gives you an error message similar to the one from the Prison Guard in the Prison Map (Map 05) when you don't have the Prison Pass. This prevents you from continuing your quest. It is supposed to ignore that fact that you failed the conditions for being able to pick up the weapon and use the condition/message that "You Seem To Have Enough" and then just continue on with the conversation.
Is that clear?
I've edit the original post's description because I missed a key component of this check.
Edit - Found Another Bug: Trying to continue the conversation when you don't fulfill the "requirements" will eventually lead to a crash. This includes the Guard in the Prison when you don't have a Prison Pass.