Shooting specific arrows from specific bows

Solution 1:

This should work:

This works for 3 different bows Power 3,4 and 5. It removes an ammo item for the correct bow. The only problem is that you have infinite ammo, but that can be fixed if you can figure a way to change arrow amount in inventory to the ammo item amount of the bow that the player has currently in hand.

Prepare scoreboard:

/scoreboard objectives add Power dummy
/scoreboard objectives add RemovedItem dummy

Check bow enchant, on always active repating command block

/scoreboard players set @e[type=Arrow] Power 1 {damage:4.0}
/scoreboard players set @e[type=Arrow] Power 2 {damage:4.5}
/scoreboard players set @e[type=Arrow] Power 3 {damage:5.0}

Removing 1 ammo item when a bow is shot, on repeating always active command block:

/execute @a ~ ~ ~ execute @e[type=Arrow,r=1,score_Power_min=1,score_Power=1] clear @p (ammo item 1 name) 1 
/execute @a ~ ~ ~ execute @e[type=Arrow,r=1,score_Power_min=2,score_Power=2] clear @p (ammo item 2 name) 1
/execute @a ~ ~ ~ execute @e[type=Arrow,r=1,score_Power_min=3,score_Power=3] clear @p (ammo item 3 name) 1