Help setting up a TV for use with Assist

Hello,
I am having some issues properly configuring my TV to work with Assist, and would welcome some advice on this matter.
To start off, here is my setup:
The TV is a Philips using Google TV. Due to this, HA has created two entities: One using the Philips TV integration, which I named media_player.living_room_tv. And the second one, using the Google Cast integration, which I named media_player.living_room_tv_chromecast.
Additionally, there are two more media players related to this device: One from the Plex integration, called media_player.living_room_tv_plex and one from Music Assistant using Chromecast, called media_player.living_room_tv_ma_chromecast
So 4 in total. I also created another one manually using the Universal Media Player integration so I could have a single card in my dashboard to show whatever is playing on the TV, which is configured like so:

media_player:
  - platform: universal
    name: Living Room TV - Universal
    children:
      - media_player.living_room_tv
      - media_player.living_room_tv_chromecast
      - media_player.living_room_tv_ma_chromecast
      - media_player.living_room_tv_plex
    active_child_template: >
      {%
        if is_state("media_player.living_room_tv_ma_chromecast", [ "on", "playing", "buffering" ])
        or (
          is_state("media_player.living_room_tv_ma_chromecast", "paused") and
          not is_state("media_player.living_room_tv_plex", [ "on", "playing" ])
        )
      %}
        media_player.living_room_tv_ma_chromecast
      {%
        elif is_state("media_player.living_room_tv_plex", [ "on", 'playing', 'buffering' ])
        or (
          is_state("media_player.living_room_tv_plex", "paused") and
          not is_state("media_player.living_room_tv_ma_chromecast", [ "on", "playing" ])
        )
      %}
        media_player.living_room_tv_plex
      {% elif is_state("media_player.living_room_tv_chromecast", [ "on", 'playing', 'paused', 'buffering' ]) %}
        media_player.living_room_tv_chromecast
      {% else %}
        media_player.living_room_tv
      {% endif %}
    commands:
      turn_on:
        action: media_player.turn_on
        target:
          entity_id: media_player.living_room_tv
      turn_off:
        action: media_player.turn_off
        target:
          entity_id: media_player.living_room_tv
    device_class: tv
    unique_id: living_room_tv_universal

Now for the issue. I want to be able to control the TV via voice commands using Assist. The basic voice commands I want to have working are the following:

  • ‘Turn on the Living Room TV’ - This should turn on the TV
  • ‘Play [Artist] on Living Room TV’ - This should play songs from the specified artist on the TV using Music Assistant.

I wanted to do this without exposing all the entities mentioned above, so I figured I’d only expose the Universal Media Player and that should take care of everything, however it doesn’t seem to work properly. It manages to turn on and off the TV like I want to, but it can’t seem to be able to play music. So I also exposed the Music Assistant entity (See attached pictures for how these entities were exposed). Which kind of works, but not exactly the way I want it to. Now in order to get what I want I have to give the following commands:

  • ‘Turn on the Living Room TV’ - This works fine using the universal media player
  • ‘Play [Artist] on the Media Center’ - This works using the Music Assistant entity.

The problem I have with this is that I expose two different entities with two different aliases/names which I have to use in order to control one device - the TV. Is there any way to be able to do this the way I am trying to? I tried modifying the universal media player to route the media_play, play_media, 'media_browse, media_search`, etc. commands to the MA entity like so:

media_player:
  - platform: universal
    name: Living Room TV - Universal
    children:
      - media_player.living_room_tv
      - media_player.living_room_tv_chromecast
      - media_player.living_room_tv_ma_chromecast
      - media_player.living_room_tv_plex
    active_child_template: >
      {%
        if is_state("media_player.living_room_tv_ma_chromecast", [ "on", "playing", "buffering" ])
        or (
          is_state("media_player.living_room_tv_ma_chromecast", "paused") and
          not is_state("media_player.living_room_tv_plex", [ "on", "playing" ])
        )
      %}
        media_player.living_room_tv_ma_chromecast
      {%
        elif is_state("media_player.living_room_tv_plex", [ "on", 'playing', 'buffering' ])
        or (
          is_state("media_player.living_room_tv_plex", "paused") and
          not is_state("media_player.living_room_tv_ma_chromecast", [ "on", "playing" ])
        )
      %}
        media_player.living_room_tv_plex
      {% elif is_state("media_player.living_room_tv_chromecast", [ "on", 'playing', 'paused', 'buffering' ]) %}
        media_player.living_room_tv_chromecast
      {% else %}
        media_player.living_room_tv
      {% endif %}
    commands:
      turn_on:
        action: media_player.turn_on
        target:
          entity_id: media_player.living_room_tv_chromecast
      turn_off:
        action: media_player.turn_off
        target:
          entity_id: media_player.living_room_tv
      play_media:
        action: media_player.play_media
        target:
          entity_id: media_player.living_room_tv_ma_chromecast
      media_play:
        action: media_player.media_play
        target:
          entity_id: media_player.living_room_tv_ma_chromecast
      ... etc.
    device_class: tv
    unique_id: living_room_tv_universal

But it doesn’t work. Can this be solved in any way?

Also, as a side question: Do the chat pipeline and voice pipeline work differently? Because it seems to be working properly when I try to type the commands in Assist on the home assistant web page, just not when I try to talk to the voice assistant.
I’ve linked the debug info from the chat and voice commands here, in case it helps here:
Text chat log
Voice chat log
Thank you in advance, and sorry for rambling.