There seems to be an inferential gap and I'm not immediately sure how to span it to answer the right questions. So instead, I'll cast a wide net. Some of this is repeated information, but extra context may help solidify conceptual connections.
So, then, localRotation would be the opposite of OriginalOrientation...?
localRotation is not the opposite of the 'original orientation.' All entities are created with Quaternion.Identity as an orientation to begin with.
In local space, they have a specific starting configuration based on what kind of entity they are. Cylinders' lengths are aligned with the local Y axis. This doesn't mean there is a non-identity rotation somewhere. That's just how the object is when the orientation is identity.
The localRotation's purpose is to pre-rotate an entity from its base configuration to the desired starting configuration. It creates a new space that will be considered the entity's local orientation for the purpose of later rotation. So, instead of setting the entity's Orientation directly to the curve's value, start with the local rotation to bring it into the new local space. Then, apply the rotation defined by the curve's value.
That would be Quaternion.Identity / OriginalOrientation, right?
I would recommend staying away from operator overloads for now, especially with quaternions in XNA.
Instead, stick with explicit, direct operations. For example, instead of relying on the * operator (which is equivalent to the Quaternion.Multiply method), use Quaternion.Concatenate explicitly to avoid confusion with multiplication order. Instead of thinking in 'divides,' concatenate the conjugate of a quaternion. Quaternions that represent orientations should have unit length and conjugating an orientation quaternion is the same as inverting the quaternion. So, to 'concatenate the conjugate of a quaternion' is to multiply by the inverse as far as orientation quaternions are concerned.
This may look more complicated at first, but it allows you to think fully in terms of one-directional simple rotations occurring in sequence, rather than dealing with sneaky multiplication order issues and keeping in mind exactly what a 'divide' operation does with quaternions.
I have to compute this on the fly, or else specify it for every model I need to use it with, which would be a pain.
It would not be computed on the fly. The localRotation does not change over time. It is a fixed value for a type of objects. Yes, you must define it for each type of object. Computing it on the fly doesn't make sense because it's a static value for each type that must be manually defined based on the local space configuration of the type. Any valid 'computation' you could do on the fly would just be a redundant version of one you could run at initialization.
So, if I have Identity * OriginalOrientation (Or OriginalOrientation * identity, whichever. For this case, I'll treat multiplication as commutive if I'm returning the absolute value, because I'm not worried about signs right now. If I get a rotation in the opposite direction, I'll just switch the terms)
Quaternion multiplication/concatenation is not commutative. Quaternion multiplication/concatenation is not a dot product that returns a signed scalar; multiplication/concatenation results in another quaternion.
Reversing the multiplication order does not result in a negated quaternion. Try taking an object and doing a 45 degree rotation around X, then Z. Compare it to a 45 degree rotation around Z, then X. There do exist relationships between the two orders, but the results are not the same and the difference is not a simple negation in general.
While it might seem easy enough to switch the terms later if you encounter a problem when you are only handling a single multiplication between two quaternions, things get complicated fast. Once you start dealing with multiple rotations, tons of hard to understand behaviors will start showing up. It's tempting to start swapping multiplication orders at random in an effort to fix it, but that way lies madness.
It's best to build one brick at a time on a solid foundation.