The most common reason that an RI discount isn't applying to the instance in the way that you expect is that the terms of the RI don't match any instances running on your account. The RI that you purchase must match the platform, type, size (or size footprint), Availability Zone (if applicable), and tenancy of a running On-Demand Instance for it to apply. Check the terms of your RI and the instance it applies to.
For size-flexible RIs, the billing benefit isn't necessarily applied to an instance exactly matching the terms of the RI before it matches a complementary grouping of smaller instances. For example, if you run an m3.large instance and two m3.medium instances, and you purchase a Reserved Instance for an m3.large instance, the RI billing benefit might apply to either of these groups of instances. To see which instances are covered by RIs on your account, use one of the bill reporting options here: How do I find out if my Amazon EC2 Reserved Instances are being fully used?