I don't really know the right answer but I get something I couldn't understand.
This is only trying to help you, and I probably don't know everything, but this line as something wrong (or do I misunderstand) :
onready var circle2d : Circle2D = $Circle2D
So circle2d seems to be a "type" of Node2D (this is what I see in the structure of the scene)
But you try to set circle2d with a "type" of Circle2D : is it a custom type class_name?
It will help to see the Circle2D script code
If you need a CircleShape2D, for setting the radius, it is simple as :
circle2d.radius = radius_ball
I'm wondering why you need another scene for this, also you already have a CollisionShape2D (the CircleShape2D should be set here in the editor)
Please avoid using type return in your function, when there's no need, it make things more complex for nothing : (here an example of a function in my dev, we don't care about what it return, because wee just call it)
func jump_action(amount:float):
state.eval.jumping = true
motion.y = -amount*range_lerp(speed,0,1,0.7,1.0)
jump_release = motion.y