Brushless motor driver fails at PWM duty > 10%
It's hard to say exactly what is going on without probing around  the hardware, but perhaps some of these ideas might help:


You're pulling up the hall inputs through an LED.  This might be fine, but seems a little non-standard.  Have you checked the voltage levels and the transition times on those inputs?  The VIH is 2V I believe for those inputs - you should make sure you have a bit of margin - unknown how much current your off-board hall sensors can sink.  VIL is 0.8V, so if your hall sensors are having difficulty getting that signal low enough, it might cause the problems you're describing.
You mentioned that your high side fets are getting warm.  Have you looked at the gate drive waveforms?  These can be tough to look at.  Sometimes I'll put one scope channel on the bridge output (fet source), another channel on the gate voltage, both referenced to ground.  Then you can do a math function and subtract one from the other to get a good gate-source representation on your scope.  Then you can look at voltage levels and make sure you're above your gate-source threshold.  Also look at transition times to make sure that the drive is healthy.  If those things are good, then you can rule out any issues with your bootstrap capacitance, charge pump, internal diode, etc.
Your gate-drive resistors seem large.  I would back these down to 1 ohm or 10 ohms until you can isolate / optimize this part of the design.  Get it working first - this could make the design not work, and would cause your upper FETs to spend too long in a transition region and get warm.
I would get rid of your output capacitance - i.e. C12 / C13, C16/C17, C14/C15.  Perhaps add them back in later if they help with noise mitigation, but if you think about it, every time you sequence a motor phase, you have to charge / discharge these caps.  The current pulses are probably huge to charge them up when the FETs come on.  On the order of amps.
(EDIT) One last thing.  You added bypass capacitance for Vbb, which is good.  However, you grounded your caps above the sense resistor.  You should instead bypass to your power ground.  You want the IC to "see" all the current through the motor phases.  It appears that with the way you've got it wired, any current that passes through the circuit from the large bypass caps will not get sensed by the IC appropriately.


Let us know how it turns out!