Yes, transactions and data stored within the Ethereum blockchain are immutable.
Hard forks do not affect immutability because the data is still accessible and unchanged on the original chain. In the event of a fork, users have the choice to use either fork. Users form a social consensus around which chain is worth using and supporting in the event of a fork. A forked chain is simply a new blockchain with different consensus rules that is entirely immutable according to its ruleset.
"As a trivial example, the only thing the DAO fork did was insert a set of value transfers from one account to another, but that still has the result that transactions (by the attacker) that would have succeeded will now fail with insufficient funds. Likewise, you can construct transactions that will fail with the new changes to gas costs, or that will succeed if a null account exists but fail if it doesn't.
'Immutability' is overused and under-specified. Strictly speaking, it should mean only that the blockchain - the set of past transactions - is not modified, which no Ethereum fork has ever done. But people use it for a much vaguer and harder to define principle of not violating their expectations." - Nick Johnson .