I didn't have any problem with merchants not having enough gold, but I never tried to sell any charms.
BF merchant inventories are reset each time you enter the battlefield, so you could enter and leave (or quicksave, enter and quickload) until you find a merchant with enough gold and loot to match the value of a charm. It would waste some gold, but you could trade a charm for goods and gold from one merchant, and sell the goods to a different one.

I rarely had to repair anything in BD. FWIW equipment doesn't have a degradable durability in D2:ED/DKS.