personally i would use something like this
:
function UnitReplaceItemsById takes unit who, integer old, integer new, integer n returns nothing
local integer i = 0
local integer j = 0
local item temp
loop
exitwhen i > 5 or n == j
set temp = UnitItemInSlot(who,i)
if GetItemTypeId(temp) == old then
call RemoveItem(temp)
call UnitAddItemToSlotById(who, new, i)
set j = j + 1
endif
set i = i + 1
endloop
set temp = null
endfunction