I made a script that inserts two models into randomly pre-chosen locations using PrimaryPartCFrame. It moves the models to the correct locations, but the Orientation on them is nothing like what I'm putting into the CFrame.Angles field. Probably a really simple fix but I'm stumped, am I doing something wrong?
--Defining the models and their CFrames
b1 = script.Parent.BattleStation1
b2 = script.Parent.BattleStation2
b1.PrimaryPart = b1.Structure
b2.PrimaryPart = b2.Structure
b1cf = b1.PrimaryPart.CFrame
b2cf = b2.PrimaryPart.CFrame
--Randomly choosing numbers
r1 = math.random(1, 6)
r2 = math.random(1, 6)
if r2 == r1 then
repeat
r2 = math.random(1, 6)
until
r2 ~= r1
end
--Assigning random numbers to pre-defined locations
bl1 = script.Parent.Locations:WaitForChild("Location"..r1)
bl2 = script.Parent.Locations:WaitForChild("Location"..r2)
bl1p = CFrame.new(bl1.Position.Value)
bl2p = CFrame.new(bl2.Position.Value)
--Moving models to locations
b1:SetPrimaryPartCFrame(bl1p * CFrame.Angles(0, (bl1.Orientation.Value), 0))
b2:SetPrimaryPartCFrame(bl2p * CFrame.Angles(0, (bl2.Orientation.Value), 0))
--Making models visible
b1.Structure.Transparency = 0
b2.Structure.Transparency = 0
for i = 1, 4 do
b1:WaitForChild("Panel"..i).SurfaceGui.Enabled = true
b2:WaitForChild("Panel"..i).SurfaceGui.Enabled = true
end

2 comments
Orientation is a Vector3, so you'd need to use Orientation.Y. This is unless you're using a custom Orientation value for some reason.
No I'm using a single number value for that field (Orientation.Value is just a number value I'm storing the Y orientation in), it just isn't rotating in the way I'm telling it to.