Perhaps you made a mistake in where or how you added the extra image fields to the query?
I can't see why this wouldn't work:
// begin Product Extra Fields
$query = "select
p.products_id,pd.products_name, pd.products_description, p.products_model,p.products_quantity, p.products_image,
p.products_image_med, p.products_image_lrg, p.products_image_sm_1, p.products_image_xl_1, p.products_image_sm_2, p.products_image_xl_2, p.products_image_sm_3, p.products_image_xl_3, p.products_image_sm_4, p.products_image_xl_4, p.products_image_sm_5, p.products_image_xl_5, p.products_image_sm_6, p.products_image_xl_6, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id";
foreach ($epf as $e) {
$query .= ", pd." . $e['field'];
}
$query .= " from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'";
$product_info_query = tep_db_query($query);
// end Product Extra Fields
Of course, modifying that particular query isn't the only thing that would need to be done and you would have to be sure any error message was refering to the query.