Jeff: Thanks for the response. If I understand your workaround correctly, I would need to create a layer or MXD by hand for each of the fields I want to use and set up the symbology for each one. That's the part I want to automate--I have dozens of fields.
I tried a new approach: changing the underlying data. I set up a field named mainField and used that as the value field in the symbology. Then in the Python script, for each of my other fields, I used arcpy.da.UpdateCursor to copy the values of the field into mainField and then I exported to JPEG. The values of mainField get set correctly and the fill colors and outlines are right, but the class breaks are still based on the original values of mainField. As you said, using symbology.reclassify causes the outlines to turn gray. You mentioned using symbology.classBreakValues instead, but when I tried it, the outlines turned gray--am I missing something?