How to use Planner Selector in the Nav2 BT's xml file

I want to use the PlannerSelector action in Nav2 in order to use multiple planners and choose which one to use in the runtime. I modified the default behavior tree xml a little bit in order to do this, and I added a PlannerSelector BT node in my xml file as you can see in the xml file below.

The main issue is that the robot always uses the default planner. I tried to change the planner by publishing the string message "GridBased1" in the topic /planner_selector (ros2 topic pub /planner_selector std_msgs/msg/String "data: GridBased1") but the robot was still using the default planner. If I change the default planner before starting the robot and execute the process again then the planner normally changes.

To sum up, it seems that the different planners work normally when assigning them as default_planner in the PlannerSelector but the system always uses the default planner and it cannot be changed by publishing in the /planner_selector topic.

Below you can see the parameters related to planner_server:

planner_server:
 ros__parameters:
  expected_planner_frequency: 20.0
  use_sim_time: True
  planner_plugins: ["GridBased", "GridBased1"]
  GridBased: 
    plugin: "nav2_navfn_planner/NavfnPlanner"
    tolerance: 0.5
    use_astar: false
    allow_unknown: true 
  GridBased1:
    plugin: "nav2_straightline_planner/StraightLine"
    interpolation_resolution: 0.1
Below you can see the BT's xml file that I use:

<root main_tree_to_execute="MainTree">
 <BehaviorTree ID="MainTree">
  <RecoveryNode number_of_retries="6" name="NavigateRecovery">
   <PipelineSequence name="NavigateWithReplanning">
    <RateController hz="1.0">
      <PipelineSequence name="SelectPlanner">
        <PlannerSelector selected_planner="{selected_planner}" default_planner="GridBased" topic_name="planner_selector"/>
        <RecoveryNode number_of_retries="1" name="ComputePathToPose">
          <ComputePathToPose goal="{goal}" path="{path}" planner_id="{selected_planner}"/>
          <ReactiveFallback name="ComputePathToPoseRecoveryFallback">
            <GoalUpdated/>
            <ClearEntireCostmap name="ClearGlobalCostmap-Context" service_name="global_costmap/clear_entirely_global_costmap"/>
          </ReactiveFallback>
        </RecoveryNode>
      </PipelineSequence>
    </RateController>
    <RecoveryNode number_of_retries="1" name="FollowPath">
      <FollowPath path="{path}" controller_id="FollowPath"/>
      <ReactiveFallback name="FollowPathRecoveryFallback">
        <GoalUpdated/>
        <ClearEntireCostmap name="ClearLocalCostmap-Context" service_name="local_costmap/clear_entirely_local_costmap"/>
      </ReactiveFallback>
    </RecoveryNode>
  </PipelineSequence>
  <ReactiveFallback name="RecoveryFallback">
    <GoalUpdated/>
    <RoundRobin name="RecoveryActions">
      <Sequence name="ClearingActions">
        <ClearEntireCostmap name="ClearLocalCostmap-Subtree" service_name="local_costmap/clear_entirely_local_costmap"/>
        <ClearEntireCostmap name="ClearGlobalCostmap-Subtree" service_name="global_costmap/clear_entirely_global_costmap"/>
      </Sequence>
      <Spin spin_dist="1.57"/>
      <Wait wait_duration="5"/>
      <BackUp backup_dist="0.15" backup_speed="0.025"/>
    </RoundRobin>
  </ReactiveFallback>
 </RecoveryNode>
I am using:

turtlebot3 package for the simulation with the default launchers for the gazebo and navigation packages
ROS2 galactic
Ubuntu 20.04
If you have any workable BT xml file with a PlannerSelector feel free to share. It's not necessary to correct my specific implementation. I generally try to figure out how the PlannerSelector node is used inside the behavior tree.

Thanks