Rendering renderable arrays in an item_list
According to https://api.drupal.org/api/drupal/includes!theme.inc/function/theme_item_list/7 theme_item_list is looking for data key so your list item should look like this:

// Construct a renderable array wrapper for the template invocation.
$tmp = array(
  '#type' =&gt; 'container',
  '#attributes' =&gt; array('class' =&gt; array('provider')),
  'providername' =&gt; array(
    '#prefix' =&gt; '&lt;span class="provider-name"&gt;',
    '#type' =&gt; 'markup',
    '#markup' =&gt; $name_link,
    '#suffix' =&gt; '&lt;/span&gt;',
  ),
  'providervalue' =&gt; array(
    '#prefix' =&gt; '&lt;span class="metric-value"&gt;',
    '#type' =&gt; 'markup',
    '#markup' =&gt; $value,
    '#suffix' =&gt; '&lt;/span&gt;',
  ),
  'metricname' =&gt; array(
    '#prefix' =&gt; '&lt;span class="metric-name"&gt;',
    '#type' =&gt; 'markup',
    '#markup' =&gt; $class_link,
    '#suffix' =&gt; '&lt;/span&gt;',
  ),
);
$items[$metric]['data'] = drupal_render($tmp);


That should give you single element:

&lt;li class="first"&gt;&lt;div class="provider"&gt;&lt;span class="provider-name"&gt;test1&lt;/span&gt;&lt;span class="metric-value"&gt;test1&lt;/span&gt;&lt;span class="metric-name"&gt;test1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;