Mirror modifier. Mirrored half is not aligned, but rotated
What you are seeing is caused by not applied transforms, specifically rotation. Since the mirror modifier mirrors along the local axis by default, it is not mirroring as desired. What you can do is apply the rotation using Ctrl+A > Rotation. This will set the local axis orientation the same as the global axis, and should solve your issue.