通过PHP API将产品添加到Magento会导致某些属性未被设置

I am trying to write a script to transfer some products from a list of products in a MySQL DB into a Magento 1.6.2 store. I have the following code:

$product = Mage::getModel('catalog/product');
$product->setTypeId('simple');
$product->setWebsiteId("2");
$product->setName($row['name']);
$product->setDescription('No Description');
$product->setShortDescription('No Description');
$product->setAttributeSetId(4); // need to look this up
$product->setSku($sku); 
if (isset($row['price'])) $product->setPrice($row['price']);
if (isset($row['msrp'])) $product->setMsrp($row['msrp']);
$product->setCategoryId($map_mysql_cat_to_mage_cat[$row['category_id']]);
$product->setWeight($weight);
$product->setManufacturer($row['manufacturer']);
$product->setTaxClassId(2); // taxable goods
$product->setVisibility(4); // catalog, search
$product->setStatus(1); // enabled

// assign product to the default website
echo "Adding Product...";
$product->save();
echo "Product Added." . PHP_EOL;

This results in the product successfully adding to the Magento catalog, and the name, SKU, price, MSRP, and weight being set correctly.

However, the Manufacturer attribute, category, and website remain unset/empty. $row['manufacturer'] is definitely a valid, non-empty string, and $map_mysql_cat_to_mage_cat[$row['category_id']] resolves to an integer, which matches a valid category id.

Where am I going wrong, I'm tearing my hair out!