It could be because jQuery calls
style[ name ] = value;
and these browsers do not support setting properties containing !important that way.
The correct way to set it would be
style.setProperty(name, value_without_!important, "important");

It would be great if jQuery could also support setting !important styles on browsers that support .setProperty().

Note: If using !important in your styles, such as display: none !important, it is necessary to override the style using .css( "display", "block !important") should you wish for .show() to function correctly.