You need to understand what "Fixed xxxx" means. The equation that relates
work and duration is W=D*U where 'U' is the resource assignment units. That
is a basic linear equation where there is an independent variable you can
edit, a dependent variable that is calculated for you, and a multiplier
constant that relates the two together. You get to pic any term as the
constant, edit your choice of the remaining two, and Project will calculate
the remaining term for you. If you choose "fixed work" that makes work the
constant and you can choose to edit either the duration or the units. If
you choose "fixed units" the units are held constant and you can edit either
duration or work. Likewise "fixed duration" makes duration constant and you
can change either of the remaining two. Further, "Fixed xxx" doesn't mean
"xxx" can't be edited, if you are "fixed duration" and you edit duration,
Project behaves as if the task was "fixed work."
When you talk about "not changing hours" are you talking about duration
hours or work hours? They are very different. And why are you so adamant
about locking in the hours? In most real world projects it's not all that
cut-and-dried and the task type setting depends on the exact reason you're
doing to edit in the first place. I've got a painter working in a room,
100%, 40 hours (5 days) duration, 40 man-hours work. I change his
assignment to 50%. Am I doing that because I've realized it's only going to
take 20 hours of work but I don't need it done any sooner or is it that I
need use him on something else at the same time and I'll live with the fact
it'll now take 80 hours of duration to complete the 40 man-hours of work
required?