I've changed bindings several times every time I run into a new hero I have difficulty controlling due to binding/control group issues, but this is what I'm currently running:
F1 - hero selection
F2 - "select all non-hero units" button (it's somewhere in the options, SUPER useful)
2 - Courier
1 - all units + hero (ones that I aim to move in a single group)
3, 4, 5, 6, 7 - control groups for individual non-hero units, dominator creeps, possible bottlecrow etc.
QWER for skills, D+C for #5-6 (I've got F bound for an inventory slot because I find F extremely convenient to use while so few heroes actually need the key)
Alt+QWERDC for autocast toggles
F, Z, X, space, mouse4, mouse5 for inventory
G for fast leveling up skills, +stats at V (might be even too convenient, sometimes I end up leveling skills before I realize I was at 11 and could've taken ulti level 2 etc)
B - Shop
Y - Scoreboard
I don't really use tabbing between units usually, unless I just summoned units and have no control group set for them but need to use something fast.