Setting a Property's min and max values after creation
You can not alter builtin properties deriving from bpy.types.Property. Just have a look at the api documentation. Every attribute is marked as readonly.
If you are using properties from bpy.props you can use your own setter and getter functions to check for min/max dynamically:
def get_frame(self):
    #default value=42
    return self.get('frame_custom', 42)  

def set_frame(self, value):
    #only accept values between min=0 and max=99
    if 0 &lt;= value &lt; 100: 
        self['frame_custom'] = value

bpy.types.Scene.frame_custom = bpy.props.IntProperty(name=&quot;Frame&quot;, get=get_frame, set=set_frame)

You could also wrap the scene attribute frame_current using:
def get_frame(self):
    return self.frame_current

def set_frame(self, value)
    if 0 &lt;= value &lt; 99:
        self.frame_current = value