At the documentation there is a Note
Note: When you declare one of the landscape or portrait values, it is
  considered a hard requirement for the orientation in which the
  activity runs. As such, the value you declare enables filtering by
  services such as Google Play so your application is available only to
  devices that support the orientation required by your activities. For
  example, if you declare either "landscape", "reverseLandscape", or
  "sensorLandscape", then your application will be available only to
  devices that support landscape orientation. However, you should also
  explicitly declare that your application requires either portrait or
  landscape orientation with the  element. For example,
  . This
  is purely a filtering behavior provided by Google Play (and other
  services that support it) and the platform itself does not control
  whether your app can be installed when a device supports only certain
  orientations.
So I guess that the device you are using has something different in this support or does not support it at all! 
Something else that you should have in mind is that you can install/test such apps throw adb to devices that the Google Play will not allow to be installed due to these filtering features.
Another way to force orientation is by using 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
before setting the screen of each activity
 ie. before the setContentView(R.layout.activity_main); .
Even this code is not sure that is going to work on your device. 
In the past, I have got reports of strange behaviors regarding orientation locking but it was quite the opposite as the setRequestedOrientation doesn't work whereas the lock thought AndroidManifest.xml is working.