Multiple forms one page always submit with the values of the first
To use multiple instances of the same form on a page you need to implement hook_forms(), which allows you to essentially use 'aliases' for your forms.

function hook_forms($form_id, $args)
{
  $forms = array();

  // Check if the form id is of the pattern add_to_collection_form-[NUMBER]
  if(preg_match('/^add_to_collection_form-\d+$/', $form_id)
  {
    $forms[$form_id]['callback'] = 'add_to_collection_form';
  }

  return $forms;
}


The above code tells Drupal that if a form ID has the pattern add_to_collection_form-[NUMBER], to use the add_to_collection_form form callback.

Now you can call the forms on your page like this:

drupal_get_form('add_to_collection_form-1', $node-&gt;nid);
drupal_get_form('add_to_collection_form-2', $node-&gt;nid);
drupal_get_form('add_to_collection_form-3', $node-&gt;nid);