Это:
bpy.context.scene.objects.active = original_object
просто устанавливает активный объект для текущей сцены, но вам также нужно выбрать его, что можно сделать с помощью:
original_object.select = True
Итак, в вашем случае вы можете написать что-то вроде:
import bpy
from bpy import context
bpy.ops.mesh.primitive_cube_add()
original_object = bpy.context.scene.objects.active
bpy.ops.object.duplicate()
bpy.ops.transform.rotate(value=90,axis=(1,0,0)) # you need to put value=90 instead of value(90), otherwise you will get an error
for obj in bpy.context.selected_objects: # deselects all selected objects
obj.select = False
bpy.context.scene.objects.active = original_object
original_object.select = True