How about using an "addItemValue" function that will create the item if it doesn't exist or will add a value to an existing item. The example below will work with text/date/number fields:
 
// add a value to an item on a document
function addItemValue(doc:NotesDocument, itemName:String, itemValue, allowDoubleEntries ) {
        
        allowDoubleEntries = (allowDoubleEntries || false);
        
        var item:NotesItem = doc.getFirstItem(itemName);
        
        if ( item == null ) {    //item doesn't exist
            
            doc.replaceItemValue( itemName, itemValue );
            
        } else {
            
            //add value if double entries are allowed (always) or 
            //no double entries allowed and value isn't present yet
            
            if ( (!allowDoubleEntries && !item.containsValue(itemValue)) || allowDoubleEntries  ) {
                var values:java.util.Vector = item.getValues();
                
                if (values == null) {        //item doesn't have a value yet (e.g. empty string)
                    
                    doc.replaceItemValue( itemName, itemValue);
                    
                } else {
                    
                    values.add(itemValue);
                    item.setValues(values);
                    
                }
            }
        }
        
 }