OK, makes sense. The concept is fine, but that chip only provides an open-drain output. You should use something that has push-pull outputs like a PCF8574.
The MAX7315 I2C-/SMBus-compatible serial interfaced peripheral provides microprocessors with 8 I/O ports. Each I/O port can be individually configured as either an open-drain current-sinking output rated at 50mA at 5.5V, or a logic input with transition detection. A ninth port can be used for transition detection interrupt or as a general- purpose output. The outputs are capable of directly dri- ving LEDs, or providing logic outputs with external resistive pullup up to 5.5V. PWM current drive is integrated with 8 bits of control. Four bits are global control and apply to all LED outputs to provide coarse adjustment of current from fully off to fully on in 14 intensity steps. Each output then has indi- vidual 4-bit control, which further divides the globally set current into 16 more steps. Alternatively, the current control can be configured as a single 8-bit control that sets all outputs at once
Okay, that chip has some built-in PWM funtionality for LED brightness (constant current) setting. It may not be useful to control H-bridges for motors etc.
The MAX7315 does have PWM, but the outputs are open-drain. So you either need to add pull up resistors to the outputs or switch to another port expander with push-pull PWM outputs.
I can't find a 'max' PWM frequency in that PDF, just a calculation for PWM. Doesn't say it's the max...
6.3 PWM Control For the selection of the max. PWM frequency the choosen rise/fall-time and the requirements on the duty cycle have to be taken into account. We recommend a PWM-period at least 10 times the rise-time. Example: Rise-time = fall-time = 4μs. => T-PWM = 10 * 4μs = 40μs. => f-PWM = 25kHz. The min. and max. value of the duty cycle (PWM ON to OFF percentage) is determined by the real fall time plus the real rise time. In this example a duty cycle make sense from approximately 20% to 80%. If a wider duty cycle range is needed, the PWM frequency could be decreased and/or the rise/fall-time could be accelerated.
That formula they give for PWM is useless. The max PWM is going to be related to the switch on/off delay times and they are no shorter than the BTS7960's times, so I think ~25kHz will still be the limit.