Setting additional properties per face
The Blender BMesh Python API supports custom-data-layers per vert/edge/face/loop. Per face, it only supports the types (float, int, string, tex), so you'll have to make your own vectors and colors out of floats.

The code would be something like:

import bpy
import bmesh

ob = bpy.context.object

# create a bmesh editing context...
bm = bmesh.new()

# if we're in edit mode, there is already a BMesh available, else make one
if bpy.context.mode == 'EDIT_MESH':
    bm.from_edit_mesh(ob.data)
else:        
    bm.from_mesh(ob.data)

# Make the layers..
tag_number = bm.faces.layers.integer.new('number_tag')
tag_vector_x = bm.faces.layers.float.new('vector_tag_x')
tag_vector_y = bm.faces.layers.float.new('vector_tag_y')
tag_vector_z = bm.faces.layers.float.new('vector_tag_z')
tag_color_r = bm.faces.layers.float.new('color_tag_r')
tag_color_g = bm.faces.layers.float.new('color_tag_g')
tag_color_b = bm.faces.layers.float.new('color_tag_b')

# fetch the layers
tag_number = bm.faces.layers.integer.get('number_tag')
tag_vector_x = bm.faces.layers.float.get('vector_tag_x')
tag_vector_y = bm.faces.layers.float.get('vector_tag_y')
tag_vector_z = bm.faces.layers.float.get('vector_tag_z')
tag_color_r = bm.faces.layers.float.get('color_tag_r')
tag_color_g = bm.faces.layers.float.get('color_tag_g')
tag_color_b = bm.faces.layers.float.get('color_tag_b')

# set the tag value for a particular face
bm.edges[face_no][tag_number] = new_number_tag_value

# retrieve the value for a particular face
my_number_tag_value = bm.faces[face_no][tag_number]

# save our edits
if bpy.context.mode == 'EDIT_MESH':
    bm.updated_edit_mesh(ob.data)
else:
    bm.to_mesh(ob.data)
bm.free()


At some point, you'll probably want to iterate selected faces, like this:

for f in bm.faces:
    if f.select:
        print(f.index)


I don't know if the collada exporter does anything with this custom BMesh data. If not, you'll either need to extend it, or write your own exporter.

See also:


bpy.context docs
bpy.types.Object docs
bpy.ops.object docs