Whew, there is quite a bit going on here, so lets try unpacking it. I'll try to explain what is necessary to make a working HWP, and then at each step what you've done that works and what doesn't.
The first piece of the HWP puzzle is the item on which it is based. This item serves two purposes: it counts as the HWP in your bases' stores, and is the first weapon that the HWP has. Therefore, it needs to be able to be loaded as a weapon first before it'll work as a standalone unit. This means it needs a battleType, invWidth, invHeight, and a bigSprite (there may be a few other tags) before it can become a 'real' battlescape item. Then, to be loaded as a unit, the game checks whether it is has fixedWeapon: true. So for your STR_BIODRONE_TERRORIST weapon, you need to determine whether it is going to be the melee or ranged weapon for your HWP. I'd suggest making it the ranged weapon, so that you can load the ammunition from stores like normal tanks. This means it needs the following:
items:
- type: STR_BIODRONE_TERRORIST
<snip>
battleType: 1 # It'll be the ranged weapon
invWidth: 1 # Or whatever matches your bigob
invHeight: 3 # Or whatever matches your bigob
bigSprite: 0 # Borrowing the laser rifle sprite for now
This will allow it to load as a unit onto the transport and function! I'll make the aside here, that you don't actually need this weapon to be a functional one in terms of shooting - the built-in weapons (since you have two) from the unit definition will replace this weapon and it won't ever be seen in the game.
Now, onto the unit that gets loaded. In order to spawn a unit, one needs to exist in ruleset with the same name as the item you just defined... and that's it! The livingWeapon: true part is only to make the code search for weapons with the same name as the unit for spawning alien terrorists, and is thus not necessary for HWPs. The main bit you'll want is the builtInWeapons to fill out the kit of your new HWP. The main thing to note is that the items defined here will only fill up the hands of the unit if they're a weapon, or only get loaded in one of the weapons if they're ammo. This means, as you've defined it, your STR_BIODRONE_TERRORIST will automatically be loaded with a Tank Cannon and a Tank Rocket Launcher, both fully loaded with ammo without needing any in your base's stores. The STR_BIODRONE_TERRORIST weapon we defined above gets pushed out of the hands of the unit and is never seen. So you can place any two weapons you want here in builtInWeapons, and have them both show up on the unit! However, only the first one will ever take ammunition automatically from your base stores. I recommend having the second item having one of the following:
- A clip of ammo added to the builtInWeapons list, so it gets free ammo, but making the ammo clip recover: false.
- Giving the second item a clipSize to use itself as ammo. Basically anything above 0, and you get free ammo at the beginning of the battlescape, or use -1 for infinite ammo. Also recommend setting recover: false on this item.
- Setting allowInventory: true on the armor for the unit, so you can load the gun like any other your soldiers might use!
Now, the armor. It's perfectly fine as you've defined it! Okay, it looks a bit weird with the drawing routine, but it functions.
Hope this helps!