TLDR: Don't try to drive the French out of the buildings with close assaults, but deny them the buildings with firepower while gradually advancing.
The key to the Austrian victory seems to be around Aspern. Massive concentration of 14 infantry ready to go with a single force march. Problem is the Austrian infantry are slow and get shot up on the approach. The trick is to use the faster moving militia and to get up next to the towns and occupy the attention of the French garrison while the line infantry plod forwards into range to be able to deliver a 3 dice standing volley into the town the next turn. Grenzers I think are way to valuable to use as meat shields like this because they are in a great position to be shooting up the church, but they can do it if your militia get killed too quickly early on. I once even used the heavy cavalry on that flank to move into the upper hex of Aspern to hold up the French infantry in the lower town hex, while my line infantry advanced within range (making sure the cavalry had enough room to evade infantry combat).
If I was the Austrian player, I would actually take my time setting up my troops, moving up the cavalry and attaching leaders to units. It's tempting to throw forwards the infantry that are in starting range of the towns, but in urban combat the Austrian infantry have poor staying power, and usually get ground down to exhaustion after losing two blocks in a single assault, after which the cost of activation is not worth the single combat dice and they become sitting ducks. Austrian infantry have better firepower than the French and more reserves, and in a situation where both sides are trading volleys, the
Austrians can put forwards fresh troops and swap out weaker ones, which is harder to do in a melee situation. It's a slow, attritional going, but the French aren't really in a position to be going on the offensive except in the center. Essling can be cleared in a similar situation, as the Austrians starting right within range are firing an equal 3 dice to the French in the granary. Yes the French can call up reserves including the guard, but if the Austrians can get into position (very important) and keep shooting up the French infantry with 3 dice volleys every time they move into a town, they will eventually stop and the towns become no-man's land, and more room for the Austrians to make an army-wide advance, now using the towns as cover to block LOS.