Script for scene conversion to addressables

So, the problem is to make a scene you have to use regular things like prefabs, then when the scene is done need to manually convert to use addressable.

So The idea is, in this example I have a scene view, that I design by hand, dragging scaling etc prefabs like trees/bushes/rocks on the scene itself in the hierarchy, get the scene to look how we would like it be.
Some of (most) of the object for the foliage rocks and such are not put in the terrain but the scene view as they are gatherable/resource nodes with scripts that destroy and re-spawn them over time.
So lets say I have made a addressable that contains all these prefabs, so each tree has its own addressable for example
So in a current example, in my ‘Scene’ I have a prefab - Prefab_Forest_black_cherry_00
In the addressables group I have it shown and listed with a path - Assets/_Address/Forest/Bushes/Prefab_Forest_black_cherry_00.prefab

I am trying to find a way for a simple script, that can examine the scene, pull a list of like the prefabs, look to see if there is a addressable version, ie see if the ‘Addressable’ is ticked in the inspector
If so to remove the ‘gameobject’ prefab, and replace it with a small prefab we have in Resources/PreFabLoader.prefab
and to assign its var to the path and transforms. then delete the gameobject from the scene
for our loader it only ‘spawns’ the object from the addressables, at the transforms it was given
So in the new converted scene view, there is no game objects in the scene that are also addressables, but loaders that just have the small script,

or is this even needed to be so complex?
In a sence it seems that when we build a project, for example with that tree as a addressable, we get a addressable ‘version’ but then since the gameobject also exists in the scene it builds it to a sharedassets file, so we end up with 2 versions of the same thing.
One some of our scenes we have thousands of objects, to need to manualy gothrew each and everyone to see if its a prefab that has a address, add a new prefab asign the vars like the addressable path and transforms then delete the gameobject, by hand is a bit painful.

I was thinking of using a basic ‘get all’ script like

List<Transform> GetAllChilds(Transform _t)
{
    List<Transform> ts = new List<Transform>();

    foreach (Transform t in _t)
    {
        ts.Add(t);
        if (t.childCount > 0)
            ts.AddRange(GetAllChilds(t));
    }

    return ts;
}

To pull the list of all objects attached, so like all our rocks are in the scene under Rocks/PrefabName, so get all child objects of Rocks, then somehow read the manifest to the addressables to see if its in there but im not sure how to begin with something like that, the addressables docs seems more for master coders rather then learning the c# stuff, any ideas or guides would be helpful