What is the purpose of having 5 identical override actions? Also, many of these commented changes don't work with always_on as far as I know.
If I'm reading this right you want an always_on ability that will only target vehicles. Luckily I use one of these within my mod although it targets a different unit type and is only an entity without a squad. I don't think it should matter though.
<instance description="vehicle hold fire Ability specific to the OKW Raketenwerfer" template="abilities">
<group name="ability_bag">
<group name="action_list">
<list name="end_self_actions">
</list>
<list name="end_target_actions">
</list>
<list name="start_self_actions">
<template_reference name="action" value="action\ui_unit_modifier_action">
<bool name="die_with_creator" value="True" />
<template_reference name="ui_info" value="tables\ui_info">
<locstring name="screen_name" value="0" />
<locstring name="help_text" value="0" />
<icon name="icon_name" value="Icons_abilities_hold_fire_on" />
<string name="hotkey_name" value="" />
</template_reference>
<uniqueid name="id" value="1073754249" />
</template_reference>
</list>
<list name="start_target_actions">
<template_reference name="action" value="action\override_weapon_target_prereq_action">
<list name="requirement_table">
<template_reference name="required" value="requirements\required_unit_type">
<enum name="reason" value="usage" />
<locstring name="ui_name" value="0" />
<enum name="unit_type" value="bangalore" />
<template_reference name="qualify_option" value="options\none">
</template_reference>
<bool name="search_load_out" value="False" />
<bool name="owned_by_player_only" value="True" />
</template_reference>
</list>
<instance_reference name="weapon_to_override" value="" />
<uniqueid name="id" value="1073754250" />
<bool name="auto_attack_only" value="True" />
<bool name="persist_on_weapon_change" value="True" />
</template_reference>
</list>
</group>
<enum name="activation" value="always_on" />
<bool name="can_interrupt" value="True" />
<bool name="can_target_in_fow" value="False" />
<float name="caster_close_in_distance" value="2" />
<bool name="casters_can_evacuate" value="False" />
<group name="cost">
<float name="action" value="0" />
<float name="command" value="0" />
<float name="fuel" value="0" />
<float name="manpower" value="0" />
<float name="munition" value="0" />
<float name="popcap" value="0" />
</group>
<string name="cursor_ghost_blueprint" value="" />
<float name="cursor_ghost_blueprint_angle" value="0" />
<bool name="disable_combat" value="False" />
<bool name="disable_when_active" value="False" />
<float name="duration_time" value="3" />
<bool name="enable_in_building" value="False" />
<bool name="enable_in_vehicle" value="False" />
<bool name="engage_combat" value="True" />
<float name="entity_busy_time" value="0" />
<float name="facing_angle" value="5" />
<bool name="facing_ignore" value="False" />
<float name="final_close_in_distance" value="0" />
<bool name="fire_and_forget" value="False" />
<bool name="garrison_target" value="False" />
<bool name="has_speech_code" value="False" />
<float name="initial_delay_time" value="10" />
<bool name="initial_recharge" value="False" />
<bool name="is_default_action" value="False" />
<bool name="move_back" value="False" />
<float name="move_back_distance" value="10" />
<float name="range" value="0" />
<bool name="range_ignore" value="True" />
<float name="recharge_time" value="0" />
<bool name="refundable" value="True" />
<bool name="require_no_shot_block" value="False" />
<enum name="shared_timer" value="" />
<bool name="shared_timer_player_wide" value="False" />
<group name="speech_code_2">
<string name="code_1" value="hf" />
<string name="code_2" value="" />
<string name="code_3" value="" />
</group>
<group name="speech_code_3">
<string name="code_1" value="" />
<string name="code_2" value="" />
<string name="code_3" value="" />
</group>
<enum name="squad_caster" value="one_entity" />
<enum name="target" value="tp_squad" />
<group name="target_special_validation">
<template_reference name="target_special_validation" value="type_ability_target_type\all">
</template_reference>
</group>
<float name="toggled_recharge_time_off" value="0" />
<float name="toggled_recharge_time_on" value="1" />
<group name="ui_cursor">
<string name="cursor_bad" value="modal_ability_cancel" />
<string name="cursor_good" value="modal_ability" />
<string name="cursor_nonmodal_good" value="" />
</group>
<group name="ui_info">
<locstring name="extra_text" value="0" />
<locstring name="help_text" value="0" />
<string name="hotkey_name" value="P" />
<icon name="icon_name" value="Icons_abilities_ability_common_face_team_weapon" />
<string name="overlay_name" value="" />
<bool name="reveal_for_decryption" value="False" />
<locstring name="screen_name" value="0" />
<icon name="icon_alternate_name" value="Icons_abilities_ability_common_cancel_face_team_weapon" />
<locstring name="brief_text" value="0" />
<locstring name="help_text_alternate" value="0" />
<locstring name="screen_name_alternate" value="0" />
<locstring name="screen_name_short" value="0" />
</group>
<locstring name="ui_usage_txt" value="0" />
<bool name="validate_actions" value="False" />
<list name="global_self_actions">
</list>
<list name="requirements">
</list>
<enum name="ability_super" value="tp_none" />
<int name="ui_position" value="23" />
<bool name="ui_mini_map_capture" value="False" />
<bool name="facing_ignore_during_active" value="False" />
<instance_reference name="ui_range" value="" />
<instance_reference name="ui_reticule" value="" />
<float name="ui_reticule_radius_min" value="1" />
<float name="ui_reticule_radius_max" value="1" />
<enum name="pending_ability_out_of_range_behaviour" value="chase" />
<enum name="ui_group" value="group_primary" />
<string name="ui_targetable_sm_key" value="" />
<string name="ui_targetable_on_key" value="" />
<string name="ui_targetable_off_key" value="" />
<enum name="ui_targetable_receiver" value="local" />
<enum name="ui_combine_type" value="intersection" />
<enum_table name="ui_modal_highlight">
<bool name="world_sector" value="False" />
<bool name="map_sector" value="False" />
<bool name="map_sector_hq_link_extender" value="False" />
</enum_table>
<enum name="ui_group_cast_type" value="multi" />
<list name="requirements_target">
</list>
<template_reference name="targeted_ability_option" value="options\none">
</template_reference>
<enum name="ui_direction_requirement" value="nondirectional" />
<instance_reference name="cursor_ghost_ebp" value="" />
<bool name="can_cast_whilst_constructing" value="False" />
<list name="requirements_self_recharge">
</list>
<bool name="can_cast_outside_active_battle_field" value="False" />
<bool name="ability_super_event_cue" value="False" />
</group>
<uniqueid name="pbgid" value="1073741940" />
</instance>
This is a modified clone of the okw_ratken_vehicle_hold_fire_mp toggle ability. You can change the bangalore unit type to vehicle. I believe the only changes are the requirements, start_self_actions, and activation. I'm not entirely sure what the exact issue of your ability is but ensure that it is given to the entity that is holding the RPG.