The object returned is a com-object returned as a System.Object, and the cast fails with "object must implement IConvertible". It's possible to cast the worksheet to System.__ComObject, but that doesn't help. This seemed to work earlier only because the first test was inverted, thus returning true in this case and forcing the container-type to the correct value. I'll try to find the source of this.
Very preliminary searching seems to indicate that System.__ComObjects have a 'real type' one has to somehow get to, and that this has to be handled especially by applications lucky enough to recieve them.