After a quick inspection of yanfly ItemCore code, it seems that the parameters Max Items, Max Weapons and Max Armors are only used in two functions. One draw the carried amount in windows and the other disable item in shop. This looks consistent with what you said.
Thus, even if it looks weird, it is not a bug but intentional.
if you want to trash all items that the player will receive in excess, you can use the code below, place it in a new plugin below ItemCore.
I've also fixed the issue it generates with the battle rewards display with this script, but it is possible that it will not work if you are using a custom victory reward info.
Then, I can't promise that this script will fix all of your expectations. You better have to learn a bit of JS if you want to hack yanfly plugins.
JavaScript:
var Imported = Imported || {};
var Yanfly = Yanfly || {};
if (Imported.YEP_ItemCore){
Game_Party_gainIndependentItem = Game_Party.prototype.gainIndependentItem;
Game_Party.prototype.gainIndependentItem = function(item, amount, includeEquip) {
var max = this.getIndependentItemTypeMax(item);
var cur = this.getIndependentItemTypeCur(item);
if (max - cur < amount) amount = max - cur;
Game_Party_gainIndependentItem.call(this,item,amount,includeEquip)
};
BattleManager_displayDropItems = BattleManager.displayDropItems;
BattleManager.displayDropItems = function() {
maxItem = Yanfly.Param.ItemMaxItems;
maxWeapon = Yanfly.Param.ItemMaxWeapons;
maxArmor = Yanfly.Param.ItemMaxArmors;
var items = this._rewards.items;
cured_items = [];
for (var i=0; i<items.length; i++){
var curItem = items[i];
if ( DataManager.isIndependent(curItem) ){
var cur = $gameParty.getIndependentItemTypeCur(curItem);
if ( DataManager.isItem(curItem) && maxItem > cur) {
cured_items.push(curItem);
maxItem -= 1;
} else if ( DataManager.isWeapon(curItem) && maxWeapon > cur ){
cured_items.push(curItem);
maxWeapon -= 1;
} else if (DataManager.isArmor(curItem) && maxArmor > cur){
cured_items.push(curItem);
maxArmor -= 1;
};
};
};
this._rewards.items = cured_items;
BattleManager_displayDropItems.call(this);
};
}