As you may know, 'Pchar' always refers to the main character and in dialog files 'NPchar' to the guy you're talking to.
You should delete those attributes you added to the Pchar after the dialog is over and re-add it when you talk again to that character, that's for avoiding potential bugs. I don't know much about the trading-items code (speaking of merchant, the only thing I played with was their sounds...), but if by default some items usually shouldn't be visible in this menu there have to be some reason for that.
I think that this time you can use a dialogexitquest for the DeleteAttribute(PChar,"alwaysshowitems.whatever"); part, just as you did first for the PChar.AlwaysShowItems.whatever = true;. I checked that and it worked.
You should delete those attributes you added to the Pchar after the dialog is over and re-add it when you talk again to that character, that's for avoiding potential bugs. I don't know much about the trading-items code (speaking of merchant, the only thing I played with was their sounds...), but if by default some items usually shouldn't be visible in this menu there have to be some reason for that.
I think that this time you can use a dialogexitquest for the DeleteAttribute(PChar,"alwaysshowitems.whatever"); part, just as you did first for the PChar.AlwaysShowItems.whatever = true;. I checked that and it worked.