Chaitanya,
Please work on this promptly. Disregard the shapefile aspects - I believe they are already adequately addressed. The key is to ensure that OGR recognises the field width for integer fields, and treats Decimal(n,0) as integer, not real.
I think the provided dataset demonstrates Integer(n) fields. I will email you with a dataset containing Decimal(n,0) fields for you to test with.
I imagine changes will need to go upstream to MITAB though I presume the issue is primarily with the OGRLayer wrapper for MITAB. Work with Alan and/or Daniel on mitab updates.
Please manufacture a small test for the test suite to verify corrections one you have them.