Hello @sadhu1706 , thank you for your question!
First, if you haven't already, can you please create a ticket using Feedback Assistant. If you haven't already, check out Bug Reporting: How and Why?. If you post your feedback ticket number here, I can make sure the right people see the issue. You will also see updates as the status of your ticket changes.
Keeping the ARSession running with stop(pauseARSession:) is the right approach. The custom ARSession section of Explore enhancements to RoomPlan from WWDC23 explains how this keeps your scan results in the same world coordinate space as the running session.
You mention you are parenting the entities to a an anchor at the world origin. Can you try, instead, to attach each wall to an ARAnchor. Add an ARAnchor at each wall's transform with add(anchor:), and parent your content to it with AnchorEntity(anchor:). Adding an anchor "helps ARKit to optimize world-tracking accuracy in the area around that anchor, so that virtual objects appear to stay in place relative to the real world."
In order to determine if the offset you are seeing comes from tracking data or processing, you can use captureSession(_:didUpdate:) during the scan. Then you can place an entity on the walls in the last didUpdate snapshot and compare it to the position from the RoomBuilder result. The processed positions can sometimes differ, so this might help get us more information about what you are seeing.
Make sure the view that is rendering content is the same view that owns the RoomPlan session. If you are using ARView, set its session to the ARSession you passed to init(arSession:), and set automaticallyConfigureSession to false. Otherwise ARView runs its own session, and that session has a different origin.