Huge hurdles, probably not. As far as I know, Tivoli JMX implements version 1.0 of the API, whereas the JDK (JDK 5) includes version 1.2. You can see the list of changes between 1.0 and 1.2 at http://jcp.org/aboutJava/communityprocess/maintenance/jsr003/3ChangeLog.html (Maintenance Reviews 1 and 2).
The main areas where you could encounter problems are serialization and Model MBeans.
The serial form of many JMX classes changed between 1.0 and 1.1. In 1.0 the serial form was incompletely specified, and serial compatibility was not guaranteed between different implementations of the API. 1.1 did specify the serial form, but made some changes to the parts that were specified in 1.0. The JDK supports a system property -Djmx.serial.form=1.0 which you can use to request the older serial form. It is not guaranteed that this will work with Tivoli, though.
The JDK's implementation of Model MBeans does not include support for some optional features, such as logging and persistence. If you depend on those, then you will need to do some work to get them. You might be able to port the RequiredModelMBean class from Tivoli to the JDK, though if you do this you must rename it out of the javax.management namespace.
The JDK's implementation of RequiredModelMBean.store() just throws ServiceNotFoundException to indicate that persistence is not supported. This is allowed by the spec. You can of course subclass RequiredModelMBean and override its store() and load() methods so that they do something useful. In that case you'll obviously have to change any code that creates a RequiredModelMBean so that it creates a MyRequiredModelMBean instead.